2
我在win32 C++應用程序中使用winsock2。我會用MessageBox顯示我可以通過調用WSAGetLastError()檢索到的網絡錯誤。我怎樣才能做到這一點?我看到的FormatMessage,但我不知道如何使用它獲取WSA錯誤代碼的格式化消息
我在win32 C++應用程序中使用winsock2。我會用MessageBox顯示我可以通過調用WSAGetLastError()檢索到的網絡錯誤。我怎樣才能做到這一點?我看到的FormatMessage,但我不知道如何使用它獲取WSA錯誤代碼的格式化消息
下面是例如,在系統的消息表下面的搜索錯誤代碼和LPTSTR Error
放置格式化的消息緩衝。
// Create a reliable, stream socket using TCP.
if ((sockClient = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0)
{
DWORD err = GetLastError();
LPTSTR Error = 0;
if(FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
NULL,
err,
0,
(LPTSTR)&Error,
0,
NULL) == 0)
{
// Failed in translating the error.
}
}
它的工作原理,但我有兩個問題:我爲什麼要投&錯誤到LPTSTR時,我可以簡單的寫錯誤?我應該用LocalFree(錯誤)釋放內存嗎? – Stefano 2011-01-08 11:08:13