私はwin32c++アプリケーションでwinsock2を使用しています。WSAGetLastError()を呼び出すことで取得できるネットワークエラーをMessageBoxで表示します。これどうやってするの?FormatMessageを見ましたが、使い方がわかりませんでした
4089 次
3 に答える
4
たとえば、次の方法でシステムのメッセージテーブルのエラーコードを検索し、フォーマットされたメッセージを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.
}
}
于 2011-01-08T10:55:13.663 に答える
1
こんにちは、このコードを使用できますhttp://www.codeproject.com/KB/tips/formatmessage.aspx
于 2011-01-08T10:28:40.337 に答える
1
C ++ 11では、次を使用できます。
std::system_category().message(WSAGetLastError());
メッセージをstd::stringとして取得し、厄介なバッファをすべて回避します:)
関数のドキュメントと、それを使用して例外をスローするこの回答を参照してください。
于 2019-07-01T18:38:59.573 に答える