VC6++ mit Seriell-Port

anhtuanvu

Grünschnabel
Hallo Experten,

Ich habe momentan ein Problem. Meine Aufgabe ist ganz einfach. Wenn ich "Center", "Kreis" oder "Viereck" In Bahnauswahl auswähle, dann drücke ich auf Start, es wird entsprechende Signale geschickt werden, also "0" entspricht "Center", "1" entspricht "Kreis" und "2" entspricht "Viereck". Mein Programm läuft, aber wenn ich Start ausdrücke, es bricht immer ab. Und ich weiss nicht genau, woran es liegt.

Anbei hänge ich mein Programm an: http://www.megaupload.com/de/?d=IMKVLUIK. Könntet Ihr mir helfen? Ich bin sehr dankbar.

Beste Grüße,

Anh Tuan
 
Der Fehler ist einfach gefunden:

in CKugelPlatte1Dlg::Setting():

strSetting.Format("%s,%c,%s,%s",9600,None,8,1);

Du gibst hier %s an, setzt aber Zahlen ein. %s wird für null-terminierte Strings verwendet. Die Funktion sucht dann von der angegebenen Adresse (9600) an die erste Null. Das geht einfach in die Hose. Ändere das so ab:

strSetting.Format("%d,%s,%d,%d",9600,"N",8,1);

Ich meine, das None müsste im SetSetting als einfaches N übergeben werden.

Du hast da übrigens noch einen Punkt in CKugelPlatte1Dlg::OnOnCommMscomm1. Die VARIANT-Deklaration wird durch die darauf folgenden Cases übersprungen. Das kompiliert unter VS2003 gar nicht. Lösung: Geschwungene Klammern drumrum:

{
VARIANT data=m_mscomm.GetInput();
m_editReceive+=(CString)data.bstrVal;
}
 
Hi Endurion,

Danke für deinen Tipp. Ich habe geändert aber es ging genauso wie vorher :( . Es wurde abgebrochen als ich auf Start ausgedrückt habe. Hast du auch mal ausprobiert? Vielen Danke für deine weitere Hilfe.

Besten Dank,

Anh Tuan
 
Hat bei mir eigentlich ohne Hänger geklappt. Ich musste nur den Comport auf 1 setzen (ich hab nur einen).

Ich hatte einen Absturz, wenn in der Combo kein Item ausgewählt ist. Da müsstest du aber nur in der Funktion CKugelPlatte1Dlg::getCurStrInComboBox zuerst den Wert von GetCurSel prüfen:

CString CKugelPlatte1Dlg::getCurStrInComboBox(const CComboBox &a)
{
CString str;

if ( a.GetCurSel() != CB_ERR )
{
a.GetLBText(a.GetCurSel(),str);
}
return str;
}
 
Hi Endurion,

Ich weiss nicht genau, woran es eingentlich liegt. Vielleicht hat mein Laptop irgendein Problem. Dabei hänge ich paar Benachrichten an, sieht dieses Problem aus: 2 Bildchen.

Danke Dir noch mal für deine Hilfe,

Anh Tuan
 

Anhänge

  • 25524attachment.jpg
    25524attachment.jpg
    72,1 KB · Aufrufe: 15
  • 25525attachment.jpg
    25525attachment.jpg
    56,9 KB · Aufrufe: 17
Kannst du denn da nicht mit dem Debugger drüber? Der zeigt dir doch direkt, wo es hakt.
 
Zurück