我有一个需要导出到 DLL 的库。如果我用 标记基类的虚拟方法 __declspec(dllimport) / __declspec(dllimport)
,子类会抛出:
unresolved external symbol "public: virtual void __thiscall...**
这是我的代码的样子:
全局变量.h
#ifdef _WIN32
#ifdef _EXPORTING
#define MYAPI __declspec(dllexport)
#else
#define MYAPI __declspec(dllimport)
#endif
#else
#define MYAPI
#endif
基础.h
class BaseClass :boost::noncopyable
{
public:
virtual MYAPI void DoSmth1() {
};
virtual MYAPI void Dosmth2() {
};
};
子类.h:
class SubClass: public BaseClass
{
public:
MYAPI void DoSmth1();
MYAPI void Dosmth2() ;
};
虚拟方法应该以不同的方式导出吗?