Probleme mit CSerialMFC



  • Nutzt noch jmd die Klasse CSerialMFC ?
    Ich hab da ein kleines Problemchen. Ich möchte Daten über die serielle Schnittstelle versenden. Dafür nutze ich folgenden Code:

    CString tmp=_T("test"); 
    	DWORD dwWritten = 0;
    	m_Serial.Write(tmp,tmp.GetLength(),&dwWritten);
    	if((unsigned long)tmp.GetLength()!=dwWritten)
    	{
    		AfxMessageBox(_T("Fehler beim Sender der Daten"));
    	}
    	return 1;
    

    Hab mir dann mal die gesendeten Daten in einem Terminalprogramm angeschaut und festgestellt, das da was komisches dabei rauskommt.
    Statt den gegebenen String "test" zu senden kommt folgendes bei meinem TerminalProgramm an:

    t0e0
    

    Es wird also immer ein char gesendet, anschließend wird eine "Null" gesendet, dann erst der nächste char.

    Weiß jmd woran das liegen könnte? Muss bei der seriellen Schnittstelle etwas anderst konfiguriert werden?

    Vielen Dank im Voraus



  • tmp ist ein Unicode-String. Du musst ihn vor dem Versand nach Ansi konvertieren. Das geht am einfachsten durch die Verwendung von CStringA.



  • Danke, mit nem Typcast auf (CStringA) funktionierts top.


Anmelden zum Antworten