我正在创建一组共享单个 dll 的 dll。
共享库有一个单例。
运行时,一些操作系统加载的库会生成我的单例的新实例。如何强制使用我的 dll 的所有库和程序始终使用我的单例的一个实例?
我正在创建一组共享单个 dll 的 dll。
共享库有一个单例。
运行时,一些操作系统加载的库会生成我的单例的新实例。如何强制使用我的 dll 的所有库和程序始终使用我的单例的一个实例?
您不能只在多个进程之间共享您的单例实例。但您可以为此目的使用共享内存:
下面的示例演示 DLL 入口点函数如何使用文件映射对象来设置可由加载 DLL 的进程共享的内存。共享的 DLL 内存仅在加载 DLL 时才会存在。应用程序可以使用 SetSharedMem 和 GetSharedMem 函数来访问共享内存。
http://msdn.microsoft.com/en-us/library/windows/desktop/ms686958(v=vs.85).aspx