• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:未解決の外部シンボル)

未解決の外部シンボル

このQ&Aのポイント
  • C言語でWinapiを使おうとした際に、未解決のシンボルのエラーが発生しました。
  • 具体的には、__imp__MessageBoxA@16というシンボルが関数_WinMain@16で参照されており、外部1が未解決というエラーメッセージが表示されました。
  • Windows XP SP3でVisual Studio C++ 2008 Express Editionを使用しています。解決方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.2

スタートメニューから「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 など…

taka1yuki
質問者

お礼

user32.libをつけるとコンパイルできました!! どうもありがとうございます。 ほかにもいろいろ教えていただき感謝しています。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • php504
  • ベストアンサー率42% (926/2160)
回答No.3

windows.hは私の環境では C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include にありました Visual C++では $(WindowsSdkDir)\include としてインクルードディレクトリの1つに登録してあるはずです

すると、全ての回答が全文表示されます。
  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.1

>をコンパイルしようとしたところ >error LNK2019:未解決のシンボル __imp__MessageBoxA@16が関数_WinMain@16で 参照されました。 >fatal errorLNK1120:外部1が未解決です。 どのようにコンパイルしました? コマンドラインから…でしょうか? http://msdn.microsoft.com/ja-jp/library/cc410914.aspx >インポートライブラリ:User32.lib を使用 ということで、User32.libもリンクしないといけませんが指定していますか?

taka1yuki
質問者

補足

cl test.c でコンパイルしました。 どうも Includeフォルダに、Windows.hが存在していないのですが・・・

すると、全ての回答が全文表示されます。

関連するQ&A