C++ でプログラムされた dll と、Visual C++ でプログラムされた exe があります。
dll の関数を次のように宣言しています。
string __declspec( dllexport ) ConfigureHAT(T_STRING pathFile);
exe プロジェクトには、すべてのヘッダー ファイルと dll ファイルを含めます。
私はdllで関数を呼び出します:
string ret = ConfigureHAT("file.txt");
実行可能プロジェクトがコンパイルされると、次のエラーで失敗します。
1>HATdllTester.obj: エラー LNK2028: 未解決のトークン (0A000317) $FYA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@Z) 関数で参照される "private: void __clrcall HATdllTester::mainWindow:: buttonConfigure_Click(class System::Object ^,class System::EventArgs ^)" (?buttonConfigure_Click@mainWindow@HATdllTester@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z)
1>AssemblyInfo.obj: エラー LNK2028: 未解決のトークン (0A000316) $FYA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@Z) 関数で参照される "private: void __clrcall HATdllTester::mainWindow:: buttonConfigure_Click(class System::Object ^,class System::EventArgs ^)" (?buttonConfigure_Click@mainWindow@HATdllTester@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z)
1>AssemblyInfo.obj: エラー LNK2019: 未解決の外部シンボル "class std::basic_string,class std::allocator > __cdecl ConfigureHAT(class std::basic_string,class std::allocator >)" (?ConfigureHAT@@$$FYA ?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@Z) 関数で参照される "private: void __clrcall HATdllTester::mainWindow::buttonConfigure_Click( class System::Object ^,class System::EventArgs ^)" (?buttonConfigure_Click@mainWindow@HATdllTester@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z)
1>HATdllTester.obj: エラー LNK2001: 未解決の外部シンボル "class std::basic_string,class std::allocator > __cdecl ConfigureHAT(class std::basic_string,class std::allocator >)" (?ConfigureHAT@@$$FYA ?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@Z)
誰でも私を助けることができますか?同じエラーで同様のメッセージをたくさん読みましたが、誰も私の問題を解決しません。
ありがとう。
編集
最後に、dll プロジェクトで生成された .lib ファイルを Project Properties -> Linker -> Input -> Additional Dependencies に含めて問題を解決します。