2012-11-27 109 views
0

VC2012,我有很多项目的解决方案
我做了一个”Common“项目,其中包含要从其他项目(用于一般目的)使用的类。
在 “普通的” 我添加了一个名为MFC C++ LINK 2019:无法解析的外部符号“public:__thiscall

“PreRequisitesManager”(CPP + H)类

和接口

(PreRequisitesInterface)。

的 “客户端” 项目(添加为依赖 “通用” 的项目),我有类

ClientDlg

。根据需要和加入

类型的成员

'PreRequisitesManager'

加入的接口。

的ClientDlg.h包括 “PreRequisitesManager.h”
PreRequisitesManager包括PreRequisitesInterface.h。

我得到这个:

GetCVClientDlg.obj:错误LNK2019:解析外部符号 “市民:__thiscall CPreRequisitesManager ::〜CPreRequisitesManager(无效)” (?? 1CPreRequisitesManager @@ QAE @XZ)函数引用 __unwindfunclet $ ?? 0CGetCVClientDlg @@ QAE @ PAVCWnd @@@ Z $ 0 GetCVClientDlg.obj:错误LNK2019:解析外部符号 “市民:__thiscall CPreRequisitesManager :: CPreRequisitesManager(无效)” (?? 0CPreRequi sitesManager @@ QAE @ XZ)在函数“public: __thiscall CGetCVClientDlg :: CGetCVClientDlg(class CWnd *)”(?0CGetCVClientDlg @@ QAE @ PAVCWnd @@@ Z)中引用。

+2

链接器抱怨没有定义析构函数和'CPreRequisitesManager'的默认构造函数。这些函数是在“Common”中定义的吗? “客户”链接“常用”吗?如果“Common”是一个DLL,它们是否被导出? – Angew

+1

似乎很有可能您忘记导出CPreRequisitesManager。例如'__declspec(dllexport)'。您将需要一些预处理器定义来确定是“dllexport”还是“dllimport”。如果你是谷歌的话,这已经在这里覆盖了。 –

+0

常见的不是DLL。这些功能只在PreRequisitesManager中,你是什么意思客户端链接通用?并且在项目中没有名为Common的类Common我只有用于全局定义的“CommonDefs.h” – ilansch

回答

0

固定。

问题是项目被编译为EXE而不是DLL。

感谢您的帮助。

相关问题