看起来我们可以通过包含所需的头文件来自由使用Windows API。然而,我无法理解这是如何可能的,因为头文件没有函数定义,只有声明,这应该被认为是一个错误,因为它缺少实现细节。编译器是如何定位实现细节并将其映射到内存中的?
看起来我们可以通过包含所需的头文件来自由使用Windows API。然而,我无法理解这是如何可能的,因为头文件没有函数定义,只有声明,这应该被认为是一个错误,因为它缺少实现细节。编译器是如何定位实现细节并将其映射到内存中的?
它与任何其他库(例如C的stdlib
)的工作方式相同-您的程序只需要“知道”函数的原型(因此也知道底层符号名称)。编译后进行链接-这是缺失的符号(函数定义)与正确库“链接”的时候。