我有一个用 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) "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(类 System::Object ^,类 System::EventArgs ^)" (?buttonConfigure_Click@mainWindow@HATdllTester@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z)
1>AssemblyInfo.obj:错误 LNK2028:未解析的令牌(0A000316)“类 std::basic_string,类 std::allocator > __cdecl ConfigureHAT(类 std::basic_string,类 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(类 System::Object ^,类 System::EventArgs ^)" (?buttonConfigure_Click@mainWindow@HATdllTester@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z)
1>AssemblyInfo.obj:错误 LNK2019:无法解析的外部符号“类 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(类 System::Object ^,类 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的问题。