Chciał bym zapisać ciąg znaków do urządzenia komunikującym się po RS232.
Otwieram więc port i przygotowuje się do wysłania
int funkcja(przekazuje bufory itp)
{
//powyżej inicjalizacja zmiennych w funkcji i pobranie buforów
while (AByteLeft) { //gdy pozostały znaki do wysłania
ASendBuffer += ABytesWritten; //poruszanie się po buforze //i w tym momencie odłączam urządzenie lecz kompilator
if(!WriteFile(hHandle, ASendBuffer, AByteLeft, &ABytesWritten, NULL)) { //zwraca w wyniku WriteFile '1' co oznacza poprawny zapis jednak zapisu nie było bo
*ApSystemError = GetLastError(); //&ABytesWritten nie zwiększa się //GetLastError() zwraca 0 jakby wszystko było ok
if (*ApSystemError == ERROR_INVALID_HANDLE || *ApSystemError == ERROR_DEVICE_REMOVED) {
return -1;
}
return -2;
}
AByteLeft -= ABytesWritten;
} //dochodzi do tego, że program zawiesza się w pętli
return 0;
}
Niestety zamiast zwrócić błąd, program zostaje w pętli. Jest na to jakieś rozwiązanie?