编译器是否能够对从dll导入的函数进行过程集成?

时间:2010-05-10 01:30:04

标签: c++ c dll inline

我知道,现代编译器不仅可以对内联定义的函数进行过程集成,还可以对驻留在目标文件中的函数进行过程集成。但是当您针对共享库(尤其是dll)编译程序时,这也是如此吗?粗略地说:如果需要,函数代码是否会从dll复制到可执行文件中?

1 个答案:

答案 0 :(得分:5)

不,因为编译器没有构成这些功能的代码。

在Windows上,当您链接到动态库时,通常会包含一个包含导入库的标题和链接,它只包含加载动态库的代码并获取指向您调用的函数的指针(从技术上讲,您不需要不需要导入库;您也可以手动呼叫LoadLibrary()和朋友。

由于编译器从未在动态库本身看到代码,因此它无法对代码执行内联扩展。