cast problem bei WriteFile..
-
void SendData (const char* buffer, unsigned int iBytesToWrite) { for(unsigned int i = 0; i <= iBytesToWrite; i++) { WriteFile(hComm, buffer[i], 1, &dwBytesWritten, &o_send); if(!GetOverlappedResult(hComm, &o_send, &dwBytesWritten, TRUE)) { throw Exception("::Error occurred in the overlapped operation!", __FILE__, __LINE__); } } }error C2664: 'WriteFile' : cannot convert parameter 2 from 'const char' to 'LPCVOID'
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style casthm...mit reinterpret_cast funktionierte es dann auch nicht;-(
cu
-
Hallo,
WriteFile erwartet einen LPCVOID, du übergibst aber buffer[i], das ist ein (const) char, ist also falsch. buffer ist allerdings (so hast du die Funktion SendData selbst definiert) schon ein const char*, d.h. ein LPCSTR, und damit "kompatibel" zu LPCVOID, also einfach die Indizierung weglassen, und Zeigerarithmetik darauf loslassen:
WriteFile(hComm, buffer + i, 1, &dwBytesWritten, &o_send);Leichtsinnsfehler oder fehlende C/C++-Grundlagen, oder..., oder...?

MfG