【发布时间】:2010-01-31 13:08:31
【问题描述】:
我正在尝试测试标准库 (kernel32.dll) 是否具有该功能之一。
用于测试的代码 sn-p:
extern void CreateProcessA (void);
int
main (void)
{
CreateProcessA ();
return 0;
}
代码编译链接如下:
cl /c test.c
link test.obj kernel32.lib
这段代码可以用Visual C++很好地编译,但不能链接:
test.obj : error LNK2019: unresolved external symbol _CreateProcessA referenced in function _main
但是函数 CreateProcessA 确实存在于 kernel32.dll 中,你没有吗?
如何正确链接?
附:我不想运行这段代码,只需检查函数是否存在(如果代码编译和链接 - 函数存在)。
【问题讨论】:
-
但是你想检查函数是在编译时存在还是在运行时存在?我在第一个中看不到任何用处(哎呀,要阅读文档,无论如何,如果您包含 windows.h 如果函数不存在,则会以编译错误结束),而在第二种情况下可能很有用,因为某些功能并非在每个 Windows 版本上都可用。
标签: c windows linker name-decoration