【发布时间】:2016-02-12 08:37:30
【问题描述】:
我有一个应该从 USB 运行的 Windows 应用程序,并且不允许在本地 PC 上安装任何软件。该应用程序使用 MSXML 版本 4,因此需要 msxml4.dll。
在代码中,应用程序使用 Windows COM 来实例化 (CreateInstance/CoCreateInstance) XML 文档/元素对象,并且 COM 确实(以某种方式神奇地)在运行时为我加载所需的 dll。 据我了解,COM需要用regsvr32工具注册dll才能找到并成功加载。问题是我不允许运行 regsvr32 工具,我也不想这样做,因为它会更改系统注册表(我猜)。
但是如果我不允许向系统注册任何 dll 怎么办,有没有办法告诉 COM 有一个 dll 只能暂时使用?我知道DLL redirection,但这只有在之前注册了 dll 的情况下才有效。
【问题讨论】:
-
目标系统上是否尚未安装 MSXML 4?
-
不,MSXML 6 是。这很好,应该始终用于完成工作。无需无注册清单。
标签: c++ windows dll com loadlibrary