Windows C++:编译 DLL 时是不是可以“烘焙”Windows DLL 依赖项? [复制]
Posted
技术标签:
【中文标题】Windows C++:编译 DLL 时是不是可以“烘焙”Windows DLL 依赖项? [复制]【英文标题】:Windows C++: Is it possible to "bake in" Windows DLL dependencies when compiling a DLL? [duplicate]Windows C++:编译 DLL 时是否可以“烘焙”Windows DLL 依赖项? [复制] 【发布时间】:2018-03-25 20:55:37 【问题描述】:我有一个编译成 DLL 的 C++ Windows 程序。 DLL 使用各种导入的函数(示例如下):
在这种情况下,我的 DLL 使用来自 ADVAPI32.dll
的 InitializeSecurityDescriptor
,这是一个 Windows DLL。
我的问题是:是否可以将ADVAPI32.dll
的代码“烘焙”到 DLL 的编译中?例如。让它不显示为导入,而是复制其代码?或者这是不可行的,因为它又具有很多依赖项?
非常感谢您的帮助!
【问题讨论】:
您究竟为什么要这样做?由于 DLL 是 Windows 操作系统的一部分,因此它在您的程序执行时始终存在。 您可以将任何数据(也是 DLL)“搭载”作为资源嵌入,但这有点复杂。看看remcom,它可以将服务 exe 传输到远程主机。尽管如此 - 正如 Neil Butterworth 已经说过的,这对于 Windows DLL 来说不是必需的。对于其他 DLL,一个简单的安装程序脚本会更常见。 您要解决什么问题?您正在尝试做的事情有很多潜在的问题。 这比重复的问题有更多的问题。ADVAPI32.DLL
是一个系统 DLL。即使您可以包含今天的版本,它也有望与今天的 Windows 内核一起使用。
【参考方案1】:
我认为答案,正如 cmets 所指出的,以及“将多个 DLL 合并为 1”的答案,这是不可行的、困难的和烦人的。我很乐意接受作为答案。 :)
【讨论】:
以上是关于Windows C++:编译 DLL 时是不是可以“烘焙”Windows DLL 依赖项? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 C++ 运行时组件中的 Windows Phone 8.1 XAML 应用程序中使用 C++ dll