【发布时间】:2015-06-01 12:27:01
【问题描述】:
似乎我们可以通过包含所需的头文件来免费使用 Windows API。但是,鉴于头文件没有函数定义而是声明,我无法让自己理解这是怎么可能的,这应该被认为是一个错误,因为它缺少实现细节。编译器如何定位实现细节并将其映射到内存中?
【问题讨论】:
-
Windows 内置了所有功能,并为其提供了 API。包含连接到该功能的库。标头只是为这些函数提供定义。该实现由 Windows 通过 DLL 提供。找到解释这些基础知识的教程或书籍可能是个好主意。
-
@KenWhite 您的意思是说 DLL 会被自动考虑在内,以便在链接过程中,编译器得到它所需要的一切?为了使它有意义,头文件必须确保编译器知道需要什么 DLL。它是怎么做的?
-
不,我的意思是头文件提供了声明,而导入库的包含提供了与内置 DLL 功能的链接。同样,寻找教程可能是个好主意。使用 DLL 和导入库是使用 Windows API 的基本信息,它在很多地方都可用。