我想从dll导出一个类。如果我把MIKROTIK_API(_declspec(dllexport)放在类名前面,我会收到链接错误。没有MIKROTIK_API,它会正确编译。
我已将_Exporting放在项目的预处理器定义中。我正在使用visual studio进行编译。
错误:MikrotikFace.obj:错误LNK2019:未解析的外部符号" public:__ thishisall MikrotikAPI :: MikrotikAPI(void)" (?? 0MikrotikAPI @@ QAE @ XZ)在函数" public中引用:__thiscall MikrotikFace :: MikrotikFace(void)" (?? 0MikrotikFace @@ @ QAE XZ)
两个主要文件: MikrotikAPI.h(类MikrotikAPI驻留在我想要使用的功能) MikrotikFace.h(我从dll导出类)
MikrotikFace.h
#include"MikrotikAPI.h"
Macro definition:
#ifdef _Exporting
#define MIKROTIK_API __declspec( dllexport )
#else
#define MIKROTIK_API __declspec( dllimport )
#endif
Exporting class MikrotikFace:
class MIKROTIK_API MikrotikFace
{
public:
MikrotikFace(){;}
~MikrotikFace(){;}
// external functions
int LoginToMKT(const std::string &strUsername, const std::string &strPassword,
const std::string &strPort, const std::string &strIPAddr, int &nmerMKTErrorResult);
private:
MikrotikAPI m_mktMikrotikAPI;
};