我目前正试图将DLL(FooEmulation
)集成到现有项目中。保存DLL的静态内存的单独实例
该DLL假定它将一次只用于模拟一个Foo
,并因此使用大量静态全局变量。
但是,我希望能够同时管理数千个Foo
实例。
我有原始DLL的源代码,所以我可以将所有的静态全局变量转换为参数(无论是直接还是通过句柄),但是DLL是单独维护的,我希望尽可能避免分叉/合并。
我发现的一种技术是加载多个动态生成的DLL副本,但是这对于我需要的规模而言资源太大。 我也不能为每个Foo
创建一个进程或线程。
是否有可能保留DLL的静态内存的多个副本,并在每次使用DLL时恢复它?
我如何找到它?我甚至允许触摸它吗?
fwiw,这是在Windows上。 – mskfisher 2010-11-08 11:26:49