【发布时间】:2014-11-24 22:49:08
【问题描述】:
我有一个带有静态成员的类,该成员的定义在 cpp 文件中。
我必须在两个不同的 DLL 中使用相同的成员定义,因此我需要在两个项目中包含 cpp 定义以进行编译。这是制作成员的新“版本”。这意味着 cpp 在两个地方编译,它将有两个定义。
我怎么能在两个 DLL 中只有一个定义。 或者我做错了什么或者我错过了什么?
在.h
class qwerty
{
public:
static xyz* abc;
};
在.cpp中
xyz* qwerty::abc = new xyz();
在两个 DLL 中,我包含了我需要的 .h 和项目中链接的 .cpp。
谢谢。
【问题讨论】:
-
您可以使用共享内存在两个模块之间共享数据:msdn.microsoft.com/en-us/library/windows/desktop/…
-
@PaulMcKenzie 不会阻止您运行多个程序实例吗?
标签: c++ static initialization