"LNK2019: 未解決の外部シンボル __imp__PathFileExistsA@4 が関数 _main で参照されました。" に関する原因と対処

このコンパイルエラーの原因と対処に関して説明します。

スポンサード リンク

Microsoft Visual C++にて以下のソースでコンパイルエラーが発生します:

コンパイルエラーメッセージ:
LNK2019: 未解決の外部シンボル __imp__PathFileExistsA@4 が関数 _main で参照されました。<プログラム名> : fatal error LNK1120: 1 件の未解決の外部参照

ソース(バグ有り):

#include "stdafx.h"
#include "Windows.h"
#include "Shlwapi.h"

//c:\temp\test.datの存在を確認
int _tmain(int argc, _TCHAR* argv[])
{
if(PathFileExists("c:\\temp\\test.dat"))
{
MessageBox( NULL, "ファイルが見つかりました。", "終了", MB_OK );
}
return 0; }


原因:
PathFileExists関数を使用していますがリンク時にリンク先の関数呼び出しアドレスが見つかりませんでした。

対処:
PathFileExistsが含まれるライブラリ(Shlwapi.lib)をリンクします。


ソース(修正済み):

#include "stdafx.h"
#include "Windows.h"
#include "Shlwapi.h"

#pragma comment( lib, "Shlwapi.lib" ) 

//c:\temp\test.datの存在を確認
int _tmain(int argc, _TCHAR* argv[])
{
if(PathFileExists("c:\\temp\\test.dat"))
{
MessageBox( NULL, "ファイルが見つかりました。", "終了", MB_OK );
}
return 0; }

スポンサード リンク



[コンパイルエラーコード、メッセージに戻る]