gpt4 book ai didi

c++ - dllimport 或 dllexport 用于使用基类 dllimport 进行类声明

转载 作者:行者123 更新时间:2023-11-28 02:47:44 25 4
gpt4 key购买 nike

我有一个类,里面有一些静态成员函数。假设类 B,这个类有一个基类,它来自第三方库,比如 A。现在类 A 已经用 dllimport 和用mingw 我可以毫不费力地构建 sharedlibs 或那个类。构建在其他显然不需要处理导入/导出内容的平台上运行良好。

// 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 时给了我 undefined reference 。 undefined reference 错误涉及类 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 文件。

关于c++ - dllimport 或 dllexport 用于使用基类 dllimport 进行类声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23854842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com