gpt4 book ai didi

dll - 在Windows中静态链接DLL

转载 作者:行者123 更新时间:2023-12-04 13:45:22 25 4
gpt4 key购买 nike

考虑这种情况:

我正在创建一个DLL(我们称其为dllA),该DLL又调用了其他DLL中的函数(我们将其称为这些dllX,dllY和dllZ)。如果其他人想使用dllA,他们也需要dllX,Y和Z的副本。

有没有一种方法可以生成dllA,从而使dllX,Y和Z中所需的功能链接到dllA中?我不知道这是否是正确的术语,但这叫做“静态链接DLL”吗?

我正在寻找一个简单的解决方案。如果简单地将dllX,Y和Z串联在一起,然后以某种方式将其附加到dllA,我会感到满意。
但是我有一种不好的感觉,那就是没有简单的解决方案。

我在Windows上,使用VS。

谢谢!

最佳答案

您不能静态链接DLL,只能静态链接LIB。 DLL是自包含的,并且具有静态成员和DllMain加载/卸载依赖关系,这意味着它们无法拆分为包含函数或链接为其他可执行文件。

您应该根据需要创建一个部署所有适当的dll的安装程序。

如果您真的认为这很重要,并且不能依靠应用程序安装程序,则可以创建一个包装器,将所需的dll(A,X,Y和Z)嵌入为资源,并在运行时提取它们并将其写入用户配置文件中的磁盘中。临时文件夹,然后加载提取的dllA并将所有传入的函数调用推迟到加载的dllA。某些sysinternals工具使用类似的技术从x86镜像中提取应用程序的x64镜像,并将其重新启动为64位进程,而无需附带两个单独的exe。

关于dll - 在Windows中静态链接DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1490685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com