dll会变成机器代码吗?

num*_*l25 8 c c++ visual-studio-2008 visual-studio

好奇的是,我被告知使用dll文件,你可以修改dll而无需重新编译使用它的整个应用程序.另一方面,需要编译.lib文件,以便代码可以作为一个链接到应用程序.

所以我知道.lib文件被转换成机器代码.但是dll怎么样?它们在执行应用程序时会变成机器代码吗?

如果不正确使用,这可能会导致轻松入侵.

mik*_*ked 11

dll仍然是机器代码.它们只是在运行时动态链接(因此然后命名)所以(如果你不更改函数签名),你不必重新编译你的主程序,以便在更改后使用dll.静态库实际上是可执行文件的一部分,这就是为什么需要重新编译(或者实际上是重新链接)的原因.


Gre*_*ill 7

DLL 确实包含已编译的机器代码.区别在于应用程序EXE和DLL之间的链接是在运行时完成的,而不是在OBJ和LIB文件之间的(传统)链接时间.