为什么不能将DLL与EXE组合在一起,就好像它已经静态链接一样?

时间:2011-06-06 06:58:48

标签: linker shared-libraries executable static-libraries

为什么不可能*将本机共享库(DLL)“重新链接”到可执行文件中,就像它们已经静态链接一样? DLL是否缺少任何必需的信息?

*注意:或者它实际上是否可行?如果是,请告诉我,但通过搜索,我认为这是不可能的。

1 个答案:

答案 0 :(得分:1)

这不是直接可能的。

当EXE加载DLL(通过LoadLibrary)时,DLL加载程序完成批次工作以修补地址。你不能只是 与组合在一起,因为它的地址错误如果它不是动态 >装载。

另一方面,LIB是静态链接的:没有加载,没有地址修复,当你启动程序时,一切都没有进一步的工作。

可以做的是将DLL和EXE转换回OBJ并将它们静态链接在一起。