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

doc*_*doc 1 c c++ dll inline

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

Jam*_*lis 5

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

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

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