gpt4 book ai didi

c - C头文件如何导入win32api函数?

转载 作者:行者123 更新时间:2023-12-01 10:17:39 25 4
gpt4 key购买 nike

简短的问题。

当我做:

#include <windows.h>

CreateProcess(..)

头文件如何知道将我连接到正确的 dll?

这些头文件中是否有将每个 win32api 函数映射到相关 dll 的字典?

最佳答案

header 仅包含 API 函数的声明,而不包含它们的定义。定义是通过链接适当的库找到的。

例如,将以下内容复制到 .c 中文件:

#include <Windows.h>

int main()
{
MessageBoxW(NULL, L"Hello World", L"", MB_OK);
return 0;
}

尝试使用命令 cl example.c 在 Visual Studio 命令提示符下编译它.您将看到错误消息:
example.obj : error LNK2019: unresolved external symbol __imp__MessageBoxW@16 referenced in function _main

请注意,编译本身实际上是成功的;是链接器提示缺少函数定义。

如果你用 cl example.c /link user32.lib 编译它,链接器将找到 MessageBox 的定义.您也可以直接 link example.obj user32.lib .

因此,要回答您的问题:头文件不需要知道函数在哪些 DLL 中,因为项目需要提供适当的库引用。幸运的是,Windows API 函数的 MSDN 文档会告诉您该函数在哪个 DLL 中以及要链接哪个库。

关于c - C头文件如何导入win32api函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59794463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com