W moim kodzie mam asynchroniczne operacje we/wy z portami wejścia/wyjścia, a dla wywołań zwrotnych zakończenia odczytu/zapisu otrzymuję UCHWYT (to oczywiście może być gniazdo, uchwyt pliku, nazwany potok i tak dalej). Więc jeśli coś jest nie tak w takiej rutynie, chcę sprawdzić błąd, ale jak sprawdzić, czy jest to "sieć" HANDLE [a SOCKET, więc powinienem nazwać WSAGetLastError()] lub "NIE-sieci" RĘKĘ [o nazwie potoki, pliki i tak dalej, więc powinienem nazwać GetLastError()]? Używam do tego prostej flagi, ale jest to brzydkie i niewspółmierne. Jeśli ktoś może potwierdzić, że WSAGetLastError() jest tylko aliasem dla GetLastError(), użyję tylko tego drugiego.Czy WSAGetLastError() jest tylko aliasem dla GetLastError()?
Wydaje się więc:
http://us.generation-nt.com/wsagetlasterror-just-an-alias-getlasterror-help-28256642.html
Ale może ktoś potwierdzić? MSDN nie ma zbyt wiele na ten temat.
I: byłby bezpieczny używać GetLastError() zamiast WSAGetLastError()? Mam na myśli, jeśli WSAGetLastError() jest nawet aliasem GetLastError() od Windows 95, jak twierdzą ktoś, mogę założyć, że będzie to prawda dla następnej wersji systemu Windows - ale nie możemy napisać dobrego kodu zakładając rzeczy :)
Tak, widziałem to, ale czy użyłbyś GetLastError() zamiast WSAGetLastError()? Nie sądzę, że będą one oddzielić te 2 funkcje, teraz –
Myślę, że jest bezpieczniejsze użycie WSAGetLastError z powodu konkretnych błędów Winsock. Ale to tylko moja opinia. – Xearinox
Jest to bardziej przejrzyste w użyciu funkcji sugerowanej w dokumentacji, jednak w tym szczególnym przypadku jest bardzo mało prawdopodobne, że te dwa kiedykolwiek podzielą się na osobne funkcje. –