「未解決の外部シンボル __imp__timeSetEvent@20 が関数 xxxx で参照されました。」エラーの対処法

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 スタートアップガイド

関連記事

コメントを残す

メールアドレスが公開されることはありません。