1

我在我的应用程序中使用了第三方组件,该组件作为 COM 组件分发,或者可以使用 .manifest 文件进行引用。无论哪种方式,它都是使用 CoCreateInstance() 加载的。第三方组件所需的文件位于子文件夹中。组件开发人员告诉我在可执行文件的 Visual Studio 2010 设置(在“清单”部分)中包含一个 .manifest 文件,并且加载组件可以正常工作。

现在我只使用 DLL 中的第三方组件来封装第三方组件中使用的功能。我正在使用 LoadLibrary() 动态加载 DLL。使用该组件仍然有效,我可以从引用清单文件的 EXE 加载的 DLL 中使用该组件。

为了进一步将 EXE 与第三方组件分开,我也想将清单移动到 DLL,这是唯一使用组件的地方。这样,我想编写的每个新 EXE 都可以使用 DLL 并间接使用这些功能。现在,我必须将 mainfest 添加到每个新的 EXE,但我不想这样做。

有没有办法将 EXE 使用的清单移动到 DLL 中?

4

1 回答 1

4

您可以将清单放在 DLL 中,但它可能不会自动激活。您可能需要使用激活上下文 API 手动执行此操作。我认为很大程度上取决于清单的用途。我怀疑您正在尝试使用免注册 COM,但这只是一个猜测。

无论如何,这些链接可能对您很有用:

于 2013-08-01T08:28:19.093 回答