1

我有一个需要导出到 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() ;
};

虚拟方法应该以不同的方式导出吗?

4

0 回答 0