Visual C++ 2005 Express EditionでLINK2019エラー
Visual C++ 2003.netからVisual C++ 2005 Express Editionに移行した際に、以前書いたプログラムがリンクエラーで動かなくなってしまいました。
追加するLibディレクトリが足りないのかと思ったのですが、何が足りないのか見つけることができませんでした。
解決法を教えていただけないでしょうか。
OSはWindows XPです。
よろしくお願いします。
エラーメッセージの内容↓
-------------------------------
error LNK2019: 未解決の外部シンボル __imp__GetWindowPlacement@8 が関数 _WinMain@16 で参照されました。
error LNK2019: 未解決の外部シンボル __imp__DispatchMessageA@4 が関数 _WinMain@16 で参照されました。
error LNK2019: 未解決の外部シンボル __imp__TranslateMessage@4 が関数 _WinMain@16 で参照されました。
error LNK2019: 未解決の外部シンボル __imp__PeekMessageA@20 が関数 _WinMain@16 で参照されました。
error LNK2019: 未解決の外部シンボル __imp__ValidateRect@8 が関数 _WinMain@16 で参照されました。
error LNK2019: 未解決の外部シンボル __imp__ShowWindow@8 が関数 _WinMain@16 で参照されました。
error LNK2019: 未解決の外部シンボル __imp__SetWindowPos@28 が関数 _WinMain@16 で参照されました。
error LNK2019: 未解決の外部シンボル __imp__GetWindowRect@8 が関数 _WinMain@16 で参照されました。
error LNK2019: 未解決の外部シンボル __imp__GetClientRect@8 が関数 _WinMain@16 で参照されました。
error LNK2019: 未解決の外部シンボル __imp__CreateWindowExA@48 が関数 _WinMain@16 で参照されました。
error LNK2019: 未解決の外部シンボル __imp__GetSystemMetrics@4 が関数 _WinMain@16 で参照されました。
error LNK2019: 未解決の外部シンボル __imp__RegisterClassExA@4 が関数 _WinMain@16 で参照されました。
error LNK2019: 未解決の外部シンボル __imp__LoadCursorA@8 が関数 _WinMain@16 で参照されました。
error LNK2019: 未解決の外部シンボル __imp__DefWindowProcA@16 が関数 "long __stdcall WindowProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WindowProc@@YGJPAUHWND__@@IIJ@Z) で参照されました。
error LNK2019: 未解決の外部シンボル __imp__PostQuitMessage@4 が関数 "long __stdcall WindowProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WindowProc@@YGJPAUHWND__@@IIJ@Z) で参照されました。
現在追加されているLibディレクトリ↓
-------------------------------------------
$(VCInstallDir)lib
$(VCInstallDir)PlatformSDK\lib
$(FrameworkSDKDir)lib
$(VSInstallDir)
$(VSInstallDir)lib
C:\Program Files\Microsoft Platform SDK\Lib
C:\Program Files\Microsoft DirectX SDK (April 2007)\Lib\x86
お礼
extern "C" { #include <powrprof.h> } でリンクエラーが出なくなりました。 悩んでた関数たちは、C++ではなくCとしてコンパイルしてやらないと、いけなかったのですね。 ここまで一緒に悩んでいただきありがとうございました。
補足
>最新のSDKでどうなってるんだろう? Microsoft Platform SDK for Windows XP SP2 を落として その中の「powrprof.h」と「powrprof.lib」を使いました 関数の宣言は以下のとおりでした。 BOOLEAN WINAPI WritePwrScheme(PUINT, LPTSTR, LPTSTR, PPOWER_POLICY); 改めてVC++6とVC++7でビルドを試みましたが VC++6では error LNK2001: 外部シンボル ""unsigned char __stdcall CanUserWritePwrScheme(void)" (?CanUserWritePwrScheme@@YGEXZ)" は未解決です error LNK2001: 外部シンボル ""unsigned char __stdcall WritePwrScheme(unsigned int *,char *,char *,struct _POWER_POLICY *)" (?WritePwrScheme@@YGEPAIPAD1PAU_POWER_POLICY@@@Z)" は未解決です VC++7では error LNK2019: 未解決の外部シンボル "unsigned char __stdcall WritePwrScheme(unsigned int *,char *,char *,struct _POWER_POLICY *)" (?WritePwrScheme@@YGEPAIPAD1PAU_POWER_POLICY@@@Z) が関数 _WinMain@16 で参照されました。 error LNK2019: 未解決の外部シンボル "unsigned char __stdcall CanUserWritePwrScheme(void)" (?CanUserWritePwrScheme@@YGEXZ) が関数 _WinMain@16 で参照されました。 のようにリンクエラーが発生しました。 CanUserWritePwrScheme()だけでリビルドしても、同一リンクエラーが発生しました。 どうしたらよいのでしょう?是非アドバイスをよろしくお願いします。