问题描述:
1>------ 已启动生成: 项目: ex06d_1, 配置: Debug Win32 ------
1>正在编译...
1>cdib.cpp
1>正在链接...
1>cdib.obj : error LNK2019: 无法解析的外部符号 _DrawDibClose@4,该符号在函数 "public: int __thiscall CDib::DrawDib(class CDC *,class CPoint,class CSize)" (?DrawDib@CDib@@QAEHPAVCDC@@VCPoint@@VCSize@@@Z) 中被引用
1>cdib.obj : error LNK2019: 无法解析的外部符号 _DrawDibDraw@52,该符号在函数 "public: int __thiscall CDib::DrawDib(class CDC *,class CPoint,class CSize)" (?DrawDib@CDib@@QAEHPAVCDC@@VCPoint@@VCSize@@@Z) 中被引用
1>cdib.obj : error LNK2019: 无法解析的外部符号 _DrawDibOpen@0,该符号在函数 "public: int __thiscall CDib::DrawDib(class CDC *,class CPoint,class CSize)" (?DrawDib@CDib@@QAEHPAVCDC@@VCPoint@@VCSize@@@Z) 中被引用
1>D:/Projects/ex06d_1/Debug/ex06d_1.exe : fatal error LNK1120: 3 个无法解析的外部命令
1>生成日志保存在“file://d:/Projects/ex06d_1/Debug/BuildLog.htm”
1>ex06d_1 - 4 个错误,0 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
无法解析的外部符号的 3 种可能
1. lib 文件未引入。可使用“#pragma comment(lib, “winsock.lib”) ”语句添加 lib 引用,也可在项目依赖里添加。
2. 类方法的实现未加类标识。如, “CTest::Connect(void) { … }” 写成了 “Connect(void) { … }”。
3. 缺少 obj 文件。在项目里添加“包含路径”:C:/curl/lib/release-dll/*.obj。
本例中cdib.cpp中缺少
#pragma comment(lib,"Gdi32.lib")
#pragma comment(lib,"Vfw32.lib")
--添加在#include的下边
分别为 CDib::DrawDib中调用的
SelectPalette 调用 gdi32.lib
GetSafeHdc 调用 vfw32.lib