c++ exe 訪問 DLL 中 c++ class error LNK2019 LNK2001
一直報錯,說找不到引用.
2>Quote.obj : error LNK2019: 無法解析的外部符號 "public: __thiscall 某類::某類(char *)" (??0某類@@QAE@PAD@Z),該符號在函數 "public: __thiscall Quote::Quote(void)" (??0Quote@@QAE@XZ) 中被引用
2>Quote.obj : error LNK2001: 無法解析的外部符號 "public: virtual bool __thiscall 某類::Init(void)" (?Init@某類@@UAE_NXZ)
2>Quote.obj : error LNK2001: 無法解析的外部符號 "public: virtual void __thiscall 某類::Kill(void)" (?Kill@某類@@UAEXXZ)
2>Quote.obj : error LNK2001: 無法解析的外部符號 "private: virtual int __thiscall 某類::Run(void)" (?Run@某類@@EAEHXZ)
2>Quote.obj : error LNK2001: 無法解析的外部符號 "private: virtual bool __thiscall 某類::Terminate(void)" (?Terminate@某類@@EAE_NXZ)
2>Quote.obj : error LNK2019: 無法解析的外部符號 "public: virtual __thiscall 某類::~某類(void)" (??1CW
1.使用編譯---------> verbose 顯示能找到庫.
2.可以看到那個方法連接到那個庫文件里面的.
3.通過depends 看這個dll暴露出來的方法.
#ifdef EXPORT_API
#define MY_API __declspec(dllexport)
#else
#define MY_API __declspec(dllimport)
#endif
class MY_API MyClass {
...
};
#include <e://testClass.h>
#pragma comment(lib, "//Debug//ServerDLL.lib")
參考
http://www.codeproject.com/Articles/28969/HowTo-Export-C-classes-from-a-DLL
- DLL入門淺析(5)——使用DLL在進程間共享數據
- DLL入門淺析(4)——從DLL中導出類
- DLL入門淺析(3)——從DLL中導出變量
- DLL入門淺析(2)——如何使用DLL
- DLL入門淺析(1)——如何建立DLL
http://www.cppblog.com/suiaiguo/archive/2009/07/21/90734.html