掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
型変換 (ID:65164)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
どっかで見たことあるこの宣言及び変数名(LPVOID lpMsgBuf)と思ったら もしかしてGetLastError()関数でエラーメッセージを見る時の MSDNのサンプルの変数宣言と全く同じですね。でもあくまで こちらの勝手な推測でしかないので瀬戸っぷさんのおっしゃっている 通りなのですが・・・。 以下MSDNのGetLastError()関数でのエラーメッセージ表示サンプル LPVOID lpMsgBuf; FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // デフォルト言語 (LPTSTR) &lpMsgBuf, 0, NULL ); //ここで必要に応じて lpMsgBuf に関する処理を行う // ... MessageBox( NULL, lpMsgBuf, "Error", MB_OK | MB_ICONINFORMATION ); LocalFree( lpMsgBuf ); そしてまたこちらの勝手な推測として String型を.NETクラスのSystem::Stringクラスと勝手に解釈して おそらく.NETのMessageBox::Show()にて表示しようとして 【型が違います。】とコンパイラに怒られたとこれまた推測・・・。 よって、以下の様に型変換する。 例: //〜途中省略〜 MessageBox::Show( Convert::ToString((char *)lpMsgBuf), S"Error", MessageBoxButtons::OK, MessageBoxIcon::Exclamation ); //VC++.NET2003では //MessageBox::Show( (char *)lpMsgBuf, S"Error", MessageBoxButtons::OK, MessageBoxIcon::Exclamation ); //でもコンパイルは通った。VC2005は未確認。 仮にVC++ 6.0だとすると、 単純に ::MessageBox( NULL, (const char *)lpMsgBuf, "Error", MB_OK | MB_ICONINFORMATION ); だけで良いと思いますが・・・。 すごい勝手な推測をこちらでしてます。 せめて開発環境とプロジェクトを提示しないと的確な 回答ができません。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.