7

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 に含めて問題を解決します。

4

2 に答える 2

3

Visual Studio プロジェクトの構成を変更してみます。[一般] > [共通言語ランタイム サポート] の下で/clr、 の代わりに設定し/clr:pureます。

于 2014-07-01T14:03:12.640 に答える