常见两种LINK错误

本文探讨了解决LINK错误的方法,特别是当遇到未定义的符号或引用问题时。通过调整项目配置,从MFC动态改为MFC静态库,可以解决许多API未加载的问题。此外,还介绍了如何为特定函数添加必要的库文件,例如使用RegOpenKeyEx函数时需包含advapi32.lib库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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是对字符类型的扩展。如果不这样做,就必须把环境设定为多字节模式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值