使用基类Dllimport进行类声明



我有一个类,其中有一些静态成员函数。假设类B,这个类有一个来自第三方库a的基类,现在类A已经用dllimport声明了,用mingw我可以毫不费力地构建共享库或那个类。这个构建在其他平台上运行得很好,显然不需要处理导入/导出的东西。

// export and imports and properly defined. 
#define IMPORT __declspec(dllimport)
#define EXPORT __declspec(dllexport)
Class IMPORT A {
public:

static staticOfA();
};
class EXPORT B : public A{
public:
...
static staticOfB()
};

现在这给了我链接dll时未定义的引用。未定义的引用错误涉及B类的静态和非静态方法。

谁能告诉我为什么吗?

如果以上信息不充分,请询问,我可以提供。

看起来不太好。你总是需要通心粉在.h文件,因为类需要导出当你构建DLL,但需要导入当.h文件在客户端代码中使用。

标准格式为:

#ifdef BUILDING_FOO
#define EXPORTED __declspec(dllexport)
#else
#define EXPORTED __declspec(dllimport)
#endif
class EXPORTED A {
   // etc..
};

并且只有在构建DLL时才定义BUILDING_FOO。

我真的不知道你打算用b类做什么。如果它真的应该被导入,那么它属于另一个DLL项目的另一个。h文件。

相关内容

  • 没有找到相关文章

最新更新