Um eine RS232-Schnittstelle einzulesen habe ich folgenden Programmcode in Visual Studio 2008 ersteinmal geschrieben (zum ausprobieren) später soll das ganze mit c++ geschrieben werden und als klasse angelegt werden. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <windows.h> int main() { HANDLE hComm; DCB dcb; COMMTIMEOUTS ct; int portnr=1; TCHAR portcom[10]; int readdata; unsigned char bufferdata; DWORD data = 0; wsprintf(portcom, "COM%d", portnr); hComm = CreateFile( portcom, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0); if (hComm == INVALID_HANDLE_VALUE) { printf("Fehler beim Öffnen des Porst"); return 0; } GetCommState(hComm, &dcb); dcb.BaudRate = 38400; dcb.ByteSize = 8; dcb.Parity = NOPARITY; dcb.StopBits = ONESTOPBIT; SetCommState(hComm, &dcb); for( ; ; ) { readdata = ReadFile (hComm, &bufferdata, 1, &data, 0); if(readdata==FALSE) { printf("Fehler"); return 0; } else printf(" %s ", data); } return 0; } beim debuggen wurde mir folgender fehler angezeigt: 1>funktion.cpp 1>c:\documents and settings\a124368\my documents\visual studio 2008\projects\versuch\versuch\funktion.cpp(17) : error C2664: 'wsprintfW': Konvertierung des Parameters 2 von 'const char [6]' in 'LPCWSTR' nicht möglich 1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat. 1>Das Buildprotokoll wurde unter "file://c:\Documents and Settings\xxx\My Documents\Visual Studio 2008\Projects\versuch\versuch\Debug\BuildLog.htm" gespeichert. 1>versuch - 1 Fehler, 0 Warnung(en) ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ========== kann mir hier jemand weiterhelfen, hab schon einiges ausprobiert
Hallo,
> wsprintf(portcom, "COM%d", portnr);
mach mal
wsprintf(portcom, _T("COM%d"), portnr);
hab es, statt _T hab ich Z benutzt und es noch folgendermaßen angegeben: #ifdef UNICODE #define Z(a) L##a #else #define Z(a) a #endif grad beim weiteren stöbern gefunden, aber danke für den Tip
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.