常见两种LINK错误

1. 自己定义的函数或者变量只给出了声明,并没有定义。

2. 项目配置没有设定为win标准库或者MFC动态,而是设定为MFC静态库。因此有很多API没有加载定义,只是在默认相关头文件中有声明。所以只要搜索对应函数所在库,并加载到文件里边就可以静态编译了。
要查找一个LINK错误,一般到MSDN去搜索相关函数或者变量,MSDN会提供相关的库说明。

比如:使用到RegOpenKeyEx函数打开读取注册表,就要用到advapi32.lib库才能静态编译过。

#pragma comment(lib,"Advapi32.lib")

RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("SOFTWARE\\XXXXXXXX"), 0, KEY_READ, &regkey);


注:TEXT是对字符类型的扩展。如果不这样做,就必须把环境设定为多字节模式。

你可能感兴趣的:(link)