2011-07-08 8 views
5

Czy ktoś wie, co spowoduje, że funkcja FindWindow zwrócić błąd:FindWindow error 183

ALREADY_EXISTS error (183)

mogłem zrozumieć FILE_NOT_FOUND (2), ale dlaczego zwróci 183?

+3

Czy jesteś pewien, że 'FindWindow' to ten, który zwrócił ten błąd? Czy możesz opublikować kod, aby pokazać nam, co robisz? –

+2

FindWindow nigdy nie doprowadziłoby do JUŻ JUŻ DZIENNIKÓW. Nie spowoduje to też FILE_NOT_FOUND. Czy na pewno szukasz czegoś, euhmmm ..., okna? Nie szukasz pliku? – NGLN

+1

Czy możesz udostępnić kod? Czy wywołujesz GetLastError po FindWindow, czy bierzesz pod uwagę zwracaną wartość jako kod błędu? – Ajay

Odpowiedz

3

MSDN mówi, że FindWindow i FindWindowEx zwróci wartość NULL, jeśli funkcja się nie powiedzie i że powinieneś sprawdzić GetLastError. Wydaje się, że ta dokumentacja jest błędna. Weź ten fragment kodu:

SetLastError(12345); 
HWND h = FindWindow(L"class_name_that_does_not_exist", nullptr); 
cout << h << ' ' << GetLastError() << endl; 

Będzie wyjście

00000000 12345

Więc jak widać FindWindow nie określa ostatniego błędu. W twoim przypadku oznacza to, że ERROR_ALREADY_EXISTS był ostatnim błędem ustawionym przed wywołaniem FindWindow.

+0

Nie powiedziałbym, że FindWindow nie ustawił ostatniego kodu błędu. Jest to zgodne z projektem, nie ustawia ostatniego kodu błędu. – Asesh

+0

@ Assesh Oczywiście nie przeczytałeś dokumentacji MSDN (którą połączyłem w mojej odpowiedzi). –

Powiązane problemy