我有具有單個類這樣的遺留項目:使用跨DLL邊界的單
class Singleton
{
public:
static Singleton& Instance()
{
static Singleton inst;
return inst;
}
void foo();
};
該項目使用一個需要使用相同的類(源的一部分之間共享一個DLL託管應用程序和DLL,因此該DLL有權訪問Singleton
)。但是,Instance
(自然地)會爲DLL返回一個不同的實例,併爲宿主應用程序返回一個不同的實例。這顯然會導致問題。
有沒有辦法在DLL和宿主進程之間使用同一個實例? (讓我們假設二進制兼容性不是問題。)
這對我有用。 – zhangxaochen
這不能跨越dll, 我不得不創建一個dll入口點,並返回一個指向該實例的指針。 –