c++ - 跨 DLL 的全局结构?

标签 c++ dll global

我正在开发 DLL。这是我的 IGlobal.h,我多次从其他人那里包含它 .h/.cpp:

#ifndef _IGLOBALS_
#define _IGLOBALS_

struct IGlobalBitmaps {
    IBitmap mKnobGeneral;
    IBitmap mButtonScore;
    IBitmap mButtonRandom;
    IBitmap mButtonLoad;
    IBitmap mButtonClear;
    IBitmap mButtonShape;
    IBitmap mSwitchGeneral;
};

IGlobalBitmaps gGlobalBitmaps;

#endif // !_IGLOBALS_

当我编译 DLL 时,它说 LNK1169 one or multiply defined symbols found

我能做什么?我不能使用 const(因为一些 IBitmap 方法不是 const),也不能使用 static(因为它是一个 DLL,它变得很痛苦稍后)。

最佳答案

您应该在 .h 文件中将变量声明为 extern,并在任何一个 cpp 文件中定义它。

关于c++ - 跨 DLL 的全局结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38762703/

相关文章:

c++ - C++ DLL 中的线程安全字符串缓冲区变量

c++ - 在 C++ 中导入一个 dll 函数

c++ - CUDA:为什么不能定义静态全局成员函数?

c++ - 如何处理OpenCV::Canny边缘检测的结果

c++ - 在CUDA中处理4D张量的内核

C - 如何以编程方式在 Win32 中加载静态库?

python - 将函数内的元组转换为全局值

c++ - LoadLibrary调用系统错误wpcap.dll

c++ - 为什么我的日志在 std 命名空间中?

rust - 在 Rust 中从 std::env::consts::OS= ="windows"定义一个静态 boolean 值