调用单例库

met*_*dos 1 c++ dll singleton shared-libraries static-libraries

我有一个单例类,我将它编译为库静态(lib)或动态(dll).

是否可以保证在两种情况下对机器中同一文件的调用始终引用相同且唯一的实例?

编辑:如果进程加载两个不同的库,并且这些库中的不同函数想要使用单例类的实例,该怎么办?现在,他们正在访问同一个实例,对吗?

谢谢,

Ste*_*hen 5

不,不同的进程不会共享公共库中的单例.不同的进程使用不同的内存空间,因此每个进程都会实例化它自己的单例.

您需要使用某种共享内存或进程间通信来在进程之间共享数据.

如果单个进程加载库A和B,并且这两个库都使用库C中的单例,那么它们将使用相同的实例.