C
Kuli schrieb:
int buff = 10;
DWORD dwBytesWritten;
BOOL write = WriteFile(hCom, (int*)buff, sizeof(buff), &dwBytesWritten, NULL);
Weißt du überhaupt, was du da schreibst?
Der 2. Parameter von WriteFile ist lt. Platform SDK Doc "Pointer to the buffer containing the data to be written to the file". Also ein Zeiger auf irgendwelche Daten. buff ist bei dir aber kein Zeiger, und auch durch einen cast wird es keiner. Du hast einen Zeiger erzeugt, der auf die Speicherstelle 10 zeigt. Das ist natürlich Murks.
Du kannst ruhig sowas wie "42" (mit den Anführungszeichen!) übergeben. Wenn du dann bei den zu sendenden Bytes aber 1 angibst, wird nur die 4 gesendet und sonst nichts.
Vielleicht willst du aber die 10 senden, die in buff drinsteht. Dann ist buff aber ein irreführender Name.
Dafür benötigst du aber keinen cast, sondern die Adresse von buff. Die kriegst du mit &.