【发布时间】:2014-01-24 13:26:43
【问题描述】:
我有一个遗留项目,它有一个像这样的单例类:
class Singleton
{
public:
static Singleton& Instance()
{
static Singleton inst;
return inst;
}
void foo();
};
项目使用的 DLL 需要使用相同的类(部分源代码在宿主应用程序和 DLL 之间共享,因此 DLL 可以访问Singleton)。但是,Instance(自然)会为 DLL 返回一个不同的实例,并为宿主应用程序返回一个不同的实例。这显然会导致问题。
有没有办法在 DLL 和宿主进程之间使用同一个实例? (假设二进制兼容性不是问题。)
【问题讨论】: