Меня смущает Windows API. Я пытаюсь посмотреть, остались ли байты в анонимном канале, используя PeekNamedPipe
. Эта функция не работает, но GetLastError()
не возвращает ошибку.
Соответствующая часть моего кода
if( !PeekNamedPipe( handle, NULL, 0, NULL, &numBytesAvailable, NULL ) )
throw PeekNamedPipeException( "GetLastError() returned " + std::to_string( GetLastError() ) );
Это выдает ошибку, генерируя следующее сообщение:
terminate called after throwing an instance of 'PeekNamedPipeException'
what(): GetLastError() returned 0
Но если PeekNamedPipe
терпит неудачу, GetLastError
не должна возвращать 0 (== ERROR_SUCCESS
), верно?
Спасибо за помощь!