質問: こちらのサイトとこちらのサイトの2つサイトを参照し後者のサイトと同じようにマイクから入力した音をFFTしようとしたのですが、タイトルの通りerror LNK2019 未解決の外部シンボルが出てしまいます。 ヘッダファイルはwindows.hのみしかインクルードしていないのでwindows.hが見つからないということなのでしょうが、どのように解決すればいいのかわかりません... windowsSDKを再インストールなどを行いましたが解決できませんでした。 具体的な質問ができておらず答えにくいと思いますがわかる方が居りましたらご回答願いたいです。 エラーコードを記述しておきます ``` 1>------ ビルド開始: プロジェクト: REC, 構成: Debug Win32 ------ 1>rec.obj : error LNK2019: 未解決の外部シンボル __imp__waveOutOpen@24 が関数 "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z) で参照されました。 1>rec.obj : error LNK2019: 未解決の外部シンボル __imp__waveOutClose@4 が関数 "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z) で参照されました。 1>rec.obj : error LNK2019: 未解決の外部シンボル __imp__waveOutPrepareHeader@12 が関数 "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z) で参照されました。 1>rec.obj : error LNK2019: 未解決の外部シンボル __imp__waveOutUnprepareHeader@12 が関数 "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z) で参照されました。 1>rec.obj : error LNK2019: 未解決の外部シンボル __imp__waveOutWrite@12 が関数 "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z) で参照されました。 1>rec.obj : error LNK2019: 未解決の外部シンボル __imp__waveInOpen@24 が関数 "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z) で参照されました。 1>rec.obj : error LNK2019: 未解決の外部シンボル __imp__waveInClose@4 が関数 "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z) で参照されました。 1>rec.obj : error LNK2019: 未解決の外部シンボル __imp__waveInPrepareHeader@12 が関数 "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z) で参照されました。 1>rec.obj : error LNK2019: 未解決の外部シンボル __imp__waveInUnprepareHeader@12 が関数 "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z) で参照されました。 1>rec.obj : error LNK2019: 未解決の外部シンボル __imp__waveInAddBuffer@12 が関数 "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z) で参照されました。 1>rec.obj : error LNK2019: 未解決の外部シンボル __imp__waveInStart@4 が関数 "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z) で参照されました。 1>rec.obj : error LNK2019: 未解決の外部シンボル __imp__waveInStop@4 が関数 "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z) で参照されました。 1>C:\Users\sakemi\Downloads\REC\REC\Debug\REC.exe : fatal error LNK1120: 12 件の未解決の外部参照 ```
回答: ライブラリファイル Winmm.lib を追加でリンクする必要があります。 Visual Studio でのリンク指定で Winmm.lib ライブラリを追加するか、お使いのソースコード冒頭に以下のように記述してください。 ``` #include // これはmmeapi.h 内でもincludeしているので、入れても入れなくても良いはず。 // 以下の2行を追加 #include #pragma comment(lib, "Winmm.lib") ``` Microsoft Docs - waveOutOpen function