Win32APIのタイマーを使用したプログラムをコンパイルすると以下のエラーが出る場合があります。
未解決の外部シンボル __imp__timeSetEvent@20 が関数 xxxx で参照されました。 |
英語環境だと以下のメッセージになります。
error LNK2019: unresolved external symbol __imp__timeSetEvent@20 referenced in function xxxx |
これは、timeSetEvent()関数がライブラリwinmm.libで定義されているのですが、ライブラリがプロジェクトに登録されていない事が原因です。
対処法は、プログラムの先頭に以下のpragma命令を書きます。
これによってwinmm.libがリンクされるのでエラーが出なくなります。
#pragma comment(lib, "winmm.lib") // winmm.libを使用する |
pragma命令による指定ではなくプロジェクトの設定でwinmm.libを登録する事も可能です。
プロジェクトのプロパティより、構成プロパティ->リンカ->入力にある、追加の依存ファイルでwinmm.libを指定してください。
指定するライブラリは、手元の環境だと以下のフォルダにありました。
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib\x64 |
Visual Studio 2010 スタートアップガイド
関連記事
コメントを残す