我正在尝试集成一个DLL( FooEmulation )进入现有项目。
FooEmulation
DLL假定它只用于模拟一个 Foo 一次使用了很多静态全局变量。 但是,我希望能够管理成千上万的 实例一次。
Foo
我有原始DLL的源代码,所以我可以将所有静态全局变量转换为将要传入的参数(无论是直接传入还是通过句柄传入),但是DLL是单独维护的,我希望尽可能避免分叉/合并。
我发现的一种技术是加载动态生成的DLL的多个副本,但对于我所需要的规模来说,这是一种资源量太大的技术。 福 .
福
是否可以保留动态链接库静态内存的多个副本,并在每次使用动态链接库时将其还原?
在同一进程中多次加载DLL时,所有静态数据都是共享的。您必须重新设计库,以便在运行时根据需要动态创建所有这些对象。
我想你是在窗户上,因为没有别的事告诉我。。
看一看 here, DLLMain有一个参数告诉您
你在德尔曼也要小心。在文档中查找有关在DLLMain中以任何方式阻塞的警告。