- 締切済み
vs2010 mfc拡張DLL LNK2019
vs2010の開発環境で、mfcアプリケーションを作成しています。 mfc拡張DLLを追加すると、LNK2019が発生し、リンクが失敗します。 ( LNK2019 : 未解決の外部シンボル / unresolved external symbol ) 同様の作業をvs2005、vs2008で行っても、このエラーは発生しません。 また、vs2005、vs2008のソリューションファイルをvs2010に変換しても、このエラーは発生しません。 プロパティを比較しましたが、解決に至っておりません。 解決方法をご存知の方、ご教示ください。 よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- duke_kimura
- ベストアンサー率39% (53/134)
回答No.1
通常のLNK2019であれば他にログが出ていると思いますので、それも記載してください。
補足
ありがとうございます。 情報不足で申し訳ありません。 構成 MFCExtDLL(.exe) ExtDLL(.dll) の構成で、ExtDLLに、cTestクラスを追加し、 MFCExtDLLのMFCExtDLL.cppに、cTestのインスタンス宣言だけしています。 このため、コンストラクタとデストラクタのLNK2019が出ています。 以下、リンク時のエラーログです。 このエラーログで気が付いたのですが、コンパイルオプションで、何故か /D _AFXDLL が出力されています。このせいでしょうか? ちなみに、C/C++プロプロセッサの定義 WIN32;_WINDOWS;_DEBUG;%(PreprocessorDefinitions) で、%(PreprocessorDefinitions)の定義の確認方法が分かりません。 ---- 2013/07/24 18:49:29 にビルドを開始しました。 1>ノード 3 上のプロジェクト "C:\Users\xxx\Documents\Visual Studio 2010\Projects\MFCExtDLL\MFCExtDLL\MFCExtDLL.vcxproj" (rebuild ターゲット)。 1>InitializeBuildStatus: "Debug\MFCExtDLL.unsuccessfulbuild" のタッチ タスクを実行しています。 ClCompile: C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\CL.exe /c /I..\ExtDLL /ZI /nologo /W3 /WX- /Od /Oy- /D WIN32 /D _WINDOWS /D _DEBUG /D _UNICODE /D UNICODE /D _AFXDLL /Gm /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Yc"StdAfx.h" /Fp"Debug\MFCExtDLL.pch" /Fo"Debug\\" /Fd"Debug\vc100.pdb" /Gd /TP /analyze- /errorReport:prompt stdafx.cpp stdafx.cpp C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\CL.exe /c /I..\ExtDLL /ZI /nologo /W3 /WX- /Od /Oy- /D WIN32 /D _WINDOWS /D _DEBUG /D _UNICODE /D UNICODE /D _AFXDLL /Gm /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Yu"StdAfx.h" /Fp"Debug\MFCExtDLL.pch" /Fo"Debug\\" /Fd"Debug\vc100.pdb" /Gd /TP /analyze- /errorReport:prompt MFCExtDLL.cpp MFCExtDLLDlg.cpp MFCExtDLLDlg.cpp MFCExtDLL.cpp コードを生成中... ResourceCompile: C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\rc.exe /D _DEBUG /D _UNICODE /D UNICODE /D _AFXDLL /l"0x0411" /IDebug\ /nologo /fo"Debug\MFCExtDLL.res" MFCExtDLL.rc ManifestResourceCompile: C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\rc.exe /nologo /fo"Debug\MFCExtDLL.exe.embed.manifest.res" Debug\MFCExtDLL_manifest.rc Link: C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"C:\Users\xxx\Documents\Visual Studio 2010\Projects\MFCExtDLL\Debug\MFCExtDLL.exe" /INCREMENTAL /NOLOGO /MANIFEST /ManifestFile:"Debug\MFCExtDLL.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"C:\Users\xxx\Documents\Visual Studio 2010\Projects\MFCExtDLL\Debug\MFCExtDLL.pdb" /SUBSYSTEM:WINDOWS /TLBID:1 /ENTRY:"wWinMainCRTStartup" /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:\Users\xxx\Documents\Visual Studio 2010\Projects\MFCExtDLL\Debug\MFCExtDLL.lib" /MACHINE:X86 Debug\MFCExtDLL.res Debug\MFCExtDLL.exe.embed.manifest.res Debug\MFCExtDLL.obj Debug\MFCExtDLLDlg.obj Debug\stdafx.obj 1>MFCExtDLL.obj : error LNK2019: 未解決の外部シンボル "__declspec(dllimport) public: __thiscall cTest::cTest(void)" (__imp_??0cTest@@QAE@XZ) が関数 "void __cdecl `dynamic initializer for 'test''(void)" (??__Etest@@YAXXZ) で参照されました。 1>MFCExtDLL.obj : error LNK2019: 未解決の外部シンボル "__declspec(dllimport) public: __thiscall cTest::~cTest(void)" (__imp_??1cTest@@QAE@XZ) が関数 "void __cdecl `dynamic atexit destructor for 'test''(void)" (??__Ftest@@YAXXZ) で参照されました。 1>C:\Users\xxx\Documents\Visual Studio 2010\Projects\MFCExtDLL\Debug\MFCExtDLL.exe : fatal error LNK1120: 外部参照 2 が未解決です。 1>プロジェクト "C:\Users\xxx\Documents\Visual Studio 2010\Projects\MFCExtDLL\MFCExtDLL\MFCExtDLL.vcxproj" (rebuild ターゲット) のビルドが終了しました -- 失敗。 ビルドに失敗しました。 経過時間 00:00:03.83