【发布时间】:2011-02-05 17:30:52
【问题描述】:
假设第 3 方 DLL X 有一个全局变量 G
我编写了两个独立的 DLL(作为应用程序的插件)P1 和 P2,它们都动态加载 X。
应用程序的进程会加载我的两个插件 P1 和 P2,因此它们是同时加载的。
这是否意味着我有一个或两个 G 实例?
编辑:
使用场景是 X 是一个 3D 渲染引擎,它具有封装系统资源的单例,它根本不是为了在一个进程中期望多个实例而设计的 - 你可以运行 2 个 X 的应用程序,但尝试在 same 应用程序中初始化 X 两次会搞砸。 这两个插件都使用 X,但将作为单独的安装程序部署,它们彼此不了解,也不会共享相同的 X。 dll 文件 - 通常每个插件都有自己的目录来存储所需的资源和 DLL。
【问题讨论】:
标签: c++ windows dll global-variables