Saturday, 18 February 2017

MFC C++ LINK 2019: unresolved external symbol "public: __thiscall




VC2012, I have a solution with many projects.
I have made a "Common" project that contains classes to be used from another projects (for general purpose).
Under "Common" I added a class named




"PreRequisitesManager" (cpp+h)




and interface




(PreRequisitesInterface).





On "Client" project (Added as dependency the "Common" project) I have class




ClientDlg




. the interface was added as needed and added a member of type





'PreRequisitesManager'




.




The ClientDlg.h includes "PreRequisitesManager.h"
PreRequisitesManager includes the PreRequisitesInterface.h.





I am getting this:




GetCVClientDlg.obj : error LNK2019: unresolved external symbol
"public: __thiscall
CPreRequisitesManager::~CPreRequisitesManager(void)"
(??1CPreRequisitesManager@@QAE@XZ) referenced in function
__unwindfunclet$??0CGetCVClientDlg@@QAE@PAVCWnd@@@Z$0 GetCVClientDlg.obj : error LNK2019: unresolved external symbol
"public: __thiscall
CPreRequisitesManager::CPreRequisitesManager(void)"

(??0CPreRequisitesManager@@QAE@XZ) referenced in function "public:
__thiscall CGetCVClientDlg::CGetCVClientDlg(class CWnd *)" (??0CGetCVClientDlg@@QAE@PAVCWnd@@@Z) .



Answer



Fixed.



the problem was the project was compiled as EXE and not as DLL.



Thanks for help.


No comments:

Post a Comment

c++ - Does curly brackets matter for empty constructor?

Those brackets declare an empty, inline constructor. In that case, with them, the constructor does exist, it merely does nothing more than t...