无法链接CPP文件-无法解析的外部符号

伊泰·加尔(Itay Gal)

我正在使用Visual Studio2008。我有一个很少有项目的解决方案。在一个项目(我们称其为ProjectX)中,我具有以下文件:

头文件(ExportProject.h)如下所示:

#ifndef __CExportProject_H_INCLUDED__   
#define __CExportProject_H_INCLUDED__

class __declspec(dllimport) CExportProject{

    string func1(... params1 ...);

    void func2(... params2 ...);
}

#endif

和一个cpp文件(ExportProject.cpp):

#include "ExportProject.h"

string CExportProject::func1(... params1 ...){
    ...
    return "some string";
}

void CExportProject::func2(){
    string str = func1(... params ...);
}

当我单独编译ProjectX时,没有问题。当我尝试编译包含ProjectX和其他项目的解决方案时,出现此错误:(其中包含函数的真实名称,我只是将它们重命名以使问题更清楚)

PageWorkspace.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __thiscall CExportProject::ArgumentsToInApiString(class CInApiHash *,class ATL::CStringT<char,class StrTraitMFC_DLL<char,class ATL::ChTraitsCRT<char> > > &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class CArgumentsCollection const *,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (__imp_?ArgumentsToInApiString@CExportProject@@QAEXPAVCInApiHash@@AAV?$CStringT@DV?$StrTraitMFC_DLL@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PBVCArgumentsCollection@23@2@Z) referenced in function "protected: void __thiscall CWorkspacePage::OnExportAsInApi(void)" (?OnExportAsInApi@CWorkspacePage@@IAEXXZ)

显然,这是一个联系问题。只是为了确保我尝试将实现移至标头即可。

另外,当我在func2函数中的cpp文件上时,我确实在调用上单击鼠标右键,func1然后选择“转到定义”,它将带我到头文件上的声明而不是cpp中的定义。

可能是什么原因?

更新

就像我之前说过的,当实现被移到头文件时,我将__declspec(dllimport)删除使用__declspec(dllimport)它不起作用(Hans Passant在评论中解释了原因)。

但是即使没有__declspec(dllimport)实现在cpp上,我也会遇到相同的错误(当然,错误代码中没有__declspec(dllimport)前缀)。那说明问题了,不是吗?

伊泰·加尔(Itay Gal)

好吧,我发现了问题,并且与无关__declspec(dllimport)

我正在调用func2同一项目中定义的其他一些类。该调用产生了错误。当我对通话进行评论时,问题就消失了。的参数之一func2CString& str显然MFC没有在其他Project中使用它,其中包括func2被调用的第一个项目的lib ,所以我不能使用CString

更改它以std:string解决问题。

我仍然不明白的一件事是为什么我收到此错误,而不是实际上指示问题的错误。func2ArgumentsToInApiString,你可以在错误代码看,但仍没有表明CString的是不知道的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

_yylval是无法解析的外部符号

来自分类Dev

无法解析的外部符号NtCreateKey

来自分类Dev

Qt:Windows函数是无法解析的外部符号

来自分类Dev

代理DLL中无法解析的外部符号

来自分类Dev

无法解析的外部符号__report_rangecheckfailure

来自分类Dev

C ++ DirectX 9无法解析的外部符号

来自分类Dev

无法解析的外部符号构建Python模块

来自分类Dev

链接:错误LNK2001:无法解析的外部符号NtProcessStartup

来自分类Dev

与OpenCV 3.0链接时出现“无法解析的外部符号”错误

来自分类Dev

链接:错误LNK2001:无法解析的外部符号NtProcessStartup

来自分类Dev

错误LNK2019:将代码放入cpp文件时出现无法解析的外部符号

来自分类Dev

主外部函数的C ++“无法解析的外部符号”

来自分类Dev

使用外部dll时无法解析的外部符号

来自分类Dev

无法解析的外部符号-在更新到vss2015之后

来自分类Dev

在Windows上编译GDAL 1.11.0时无法解析的外部符号

来自分类Dev

无法解析的外部符号构建Python C扩展

来自分类Dev

Android Studio突然无法解析与Braintree(外部)库关联的符号?

来自分类Dev

qtmaind.lib中无法解析的外部符号

来自分类Dev

C ++ LNK2019无法解析的外部符号stdlib

来自分类Dev

libgcrypt.lib中无法解析的外部符号

来自分类Dev

收到“错误LNK2019:无法解析的外部符号...”

来自分类Dev

使用shared_ptr时无法解析的外部符号

来自分类Dev

错误LNK 2019:无法解析的外部符号(Matlab)

来自分类Dev

C ++ LNK2019无法解析的外部符号

来自分类Dev

BulletPhysics:错误LNK2001:无法解析的外部符号

来自分类Dev

C ++ LNK2019错误:无法解析的外部符号

来自分类Dev

Visual Studio生成错误“无法解析的外部符号WinMain”

来自分类Dev

LNK2019:C ++ / CLI中无法解析的外部符号

来自分类Dev

LNK2001:无法解析的外部符号threadIdx

Related 相关文章

  1. 1

    _yylval是无法解析的外部符号

  2. 2

    无法解析的外部符号NtCreateKey

  3. 3

    Qt:Windows函数是无法解析的外部符号

  4. 4

    代理DLL中无法解析的外部符号

  5. 5

    无法解析的外部符号__report_rangecheckfailure

  6. 6

    C ++ DirectX 9无法解析的外部符号

  7. 7

    无法解析的外部符号构建Python模块

  8. 8

    链接:错误LNK2001:无法解析的外部符号NtProcessStartup

  9. 9

    与OpenCV 3.0链接时出现“无法解析的外部符号”错误

  10. 10

    链接:错误LNK2001:无法解析的外部符号NtProcessStartup

  11. 11

    错误LNK2019:将代码放入cpp文件时出现无法解析的外部符号

  12. 12

    主外部函数的C ++“无法解析的外部符号”

  13. 13

    使用外部dll时无法解析的外部符号

  14. 14

    无法解析的外部符号-在更新到vss2015之后

  15. 15

    在Windows上编译GDAL 1.11.0时无法解析的外部符号

  16. 16

    无法解析的外部符号构建Python C扩展

  17. 17

    Android Studio突然无法解析与Braintree(外部)库关联的符号?

  18. 18

    qtmaind.lib中无法解析的外部符号

  19. 19

    C ++ LNK2019无法解析的外部符号stdlib

  20. 20

    libgcrypt.lib中无法解析的外部符号

  21. 21

    收到“错误LNK2019:无法解析的外部符号...”

  22. 22

    使用shared_ptr时无法解析的外部符号

  23. 23

    错误LNK 2019:无法解析的外部符号(Matlab)

  24. 24

    C ++ LNK2019无法解析的外部符号

  25. 25

    BulletPhysics:错误LNK2001:无法解析的外部符号

  26. 26

    C ++ LNK2019错误:无法解析的外部符号

  27. 27

    Visual Studio生成错误“无法解析的外部符号WinMain”

  28. 28

    LNK2019:C ++ / CLI中无法解析的外部符号

  29. 29

    LNK2001:无法解析的外部符号threadIdx

热门标签

归档