解決済みの質問
C言語は少しやっていたことがあり
このたび、Winapiをしてみようと
はじめました。
参考に見つけてきたプログラム
#include <windows.h>
#include <tchar.h>
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR pCmdLine, int showCmd)
{
MessageBox( NULL, _T("Hello World"), _T("メッセージ"), MB_OK );
return 0;
}
をコンパイルしようとしたところ
error LNK2019:未解決のシンボル __imp__MessageBoxA@16が関数_WinMain@16で 参照されました。
fatal errorLNK1120:外部1が未解決です。
と出てきます。
どうすればいいのでしょうか・・・
困っています誰か助けてください
Windows XP SP3
Visual Studio C++ 2008 Express Edition
投稿日時 - 2009-07-21 23:35:14
スタートメニューから「Visual Studio 2008 コマンド プロンプト」のようにもので起動しているんですよね?
# 2008 Express Editionは自宅のに入れていないので…
>Includeフォルダに、Windows.hが存在していないのですが・・・
起動したコマンドプロンプトで、SETコマンドを実行すると、
設定されている環境変数が表示されます。
INCLUDE環境変数でWINDOWS.Hのある場所が指定されているでしょう。
さていないとリンカエラーではなくコンパイルエラーです。
>cl test.c でコンパイルしました。
User32.libがリンクされていません。
cl test.c user32.lib として下さい。
ちなみに、環境変数LIBで記述されている先にuser32.libがあるハズです。
# この程度なら問題ないでしょうけど…プロジェクトを作成した方が後々扱いやすくなるかと思います。
# なお、1つのプロジェクトに同じ名前の関数は複数おけませんのでご注意を。
# http://oshiete1.goo.ne.jp/qa5126302.html
# http://oshiete1.goo.ne.jp/qa5075853.html
# http://oshiete1.goo.ne.jp/qa5061830.html など…
投稿日時 - 2009-07-22 01:07:57
お礼
user32.libをつけるとコンパイルできました!!
どうもありがとうございます。
ほかにもいろいろ教えていただき感謝しています。
投稿日時 - 2009-07-22 07:43:52
1人が「このQ&Aが役に立った」と投票しています
ベストアンサー以外の回答(2件中 1~2件目)
>をコンパイルしようとしたところ
>error LNK2019:未解決のシンボル __imp__MessageBoxA@16が関数_WinMain@16で 参照されました。
>fatal errorLNK1120:外部1が未解決です。
どのようにコンパイルしました?
コマンドラインから…でしょうか?
http://msdn.microsoft.com/ja-jp/library/cc410914.aspx
>インポートライブラリ:User32.lib を使用
ということで、User32.libもリンクしないといけませんが指定していますか?
投稿日時 - 2009-07-22 00:18:21
補足
cl test.c でコンパイルしました。
どうも
Includeフォルダに、Windows.hが存在していないのですが・・・
投稿日時 - 2009-07-22 00:36:39
OKWaveのオススメ
おすすめリンク