由于“错误LNK2028:未解析的令牌......”,我无法编译解决方案

时间:2013-09-26 07:57:30

标签: c++ visual-c++ unresolved-external

我有一个用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)“类   的std :: basic_string的,类   std :: allocator> __cdecl ConfigureHAT(类   的std :: basic_string的,类   std :: allocator>)“   (?ConfigureHAT @@ $$ FYA?AV?$ basic_string的@ DU?$ char_traits @ d @ @@ STD V'$分配器@ d @ @@ 2 STD @@ V12 @@ Z)   在函数“private:void __clrcall中引用   HATdllTester :: mainWindow :: buttonConfigure_Click(类System :: Object   ^,类System :: EventArgs ^)“   (?buttonConfigure_Click @主窗口@ @@ HATdllTester $$ FA $ $ AAMXP @ AAVObject系统@@ 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'$分配器@ d @ @@ 2 STD @@ V12 @@ Z)   在函数“private:void __clrcall中引用   HATdllTester :: mainWindow :: buttonConfigure_Click(类System :: Object   ^,类System :: EventArgs ^)“   (?buttonConfigure_Click @主窗口@ @@ HATdllTester $$ FA $ $ AAMXP @ AAVObject系统@@ P $ AAVEventArgs @ @@ 4 Z)

     

1> AssemblyInfo.obj:错误LNK2019:未解析的外部符号“class   的std :: basic_string的,类   std :: allocator> __cdecl ConfigureHAT(类   的std :: basic_string的,类   std :: allocator>)“   (?ConfigureHAT @@ $$ FYA?AV?$ basic_string的@ DU?$ char_traits @ d @ @@ STD V'$分配器@ d @ @@ 2 STD @@ V12 @@ Z)   在函数“private:void __clrcall中引用   HATdllTester :: mainWindow :: buttonConfigure_Click(类System :: Object   ^,类System :: EventArgs ^)“   (?buttonConfigure_Click @主窗口@ @@ HATdllTester $$ FA $ $ AAMXP @ AAVObject系统@@ P $ AAVEventArgs @ @@ 4 Z)

     

1> HATdllTester.obj:错误LNK2001:未解析的外部符号“类   的std :: basic_string的,类   std :: allocator> __cdecl ConfigureHAT(类   的std :: basic_string的,类   std :: allocator>)“   (?ConfigureHAT @@ $$ FYA?AV?$ basic_string的@ DU?$ char_traits @ d @ @@ STD V'$分配器@ d @ @@ 2 STD @@ V12 @@ Z)

任何人都可以帮助我吗? 我读了很多类似的错误,但是没有人解决我的问题。

感谢。

修改

最后,我解决了问题,包括在dll项目中生成的.lib文件到Project Properties - >链接器 - >输入 - >附加依赖。

2 个答案:

答案 0 :(得分:3)

我尝试更改Visual Studio项目配置。根据一般>公共语言运行时支持设置/clr而不是/clr:pure

答案 1 :(得分:0)

当我更改private ctaButtonSpinnerTriggered: BehaviorSubject< boolean > = new BehaviorSubject(false); public get isCtaButtonSpinnerTriggered(): Observable<boolean> { return this.ctaButtonSpinnerTriggered.asObservable(); } public set isCtaButtonSpinnerTriggered(isDisabled: boolean): void { this.ctaButtonSpinnerTriggered.next(isDisabled); } MyProjectCLR.vcxproj项目文件并向return combineLatest([ this.ctaDisabled, this.isCtaButtonSpinnerTriggered, ]) MyProjectC.vcxproj项目添加链接时,这对我有帮助

CLR