1.编译错误C2065 1>c:¥ documents and settings¥ administrator¥ 桌面¥ host_sp3¥ selectdialog.cpp(62): error C2065: “i”: 未声明的标识符 解决办法,将 for (int i = 0; i < m_deviceList.size(); i++) { m_ctlDevicelist.AddString(m_deviceList[i]); } 中变量 i 的定义放到函数体开头 int i; for (i = 0; i < m_deviceList.size(); i++) { m_ctlDevicelist.AddString(m_deviceList[i]); } 2.链接错误LNK2019 odbccp32.lib(dllload.obj) : error LNK2019: 无法解析的外部符号 __imp___vsnprintf,该符号在函数 _StringVPrintfWorkerA@20 中被引用 odbccp32.lib是在程序中对数据库操作时用到的,这个链接问题在使用静态DLL方式时才会遇到,如果使用共享 DLL 方式时不会出现,但是因为本程序需要使用静态DLL 方式,所以继续尝试其他的解决方法。尝试在程序属性的连接器输入选项中添加附加依赖项 odbccp32.lib,依然报错。于是在系统中搜索这个 lib 文件,最终找到了两种不同版本的 odbccp32.lib。 VC6.0 中文件信息: C:¥ Program Files¥ Microsoft Visual Studio¥ VC98¥ Lib¥ ODBCCP32.LIB VS2010 中文件信息: C:¥ Program Files¥ Microsoft SDKs¥ Windows¥ v7.0A¥ Lib¥ odbccp32.lib 从文件信息中可以看出两个文件的版本大小都不同。在程序属性的连接器输入选项中添加附加依赖项C:¥Program Files¥Microsoft Visual Studio¥VC98¥Lib¥ODBCCP32.LIB,使 用VC6.0 版本的 odbccp32.lib,编译连接成 功 。但 是 添加 C:¥Program Files¥Microsoft SDKs¥Windows¥v7.0A¥Lib¥odbccp32.lib,使 用 VS2010 版本错误依旧 会 出现。 从上 面 可以看出这个链接问题是 VC6.0 和 VS2010 中 odbccp32.lib 版本不同造 成 的,解 决 办法 便 是 在程序属性的连接器输入选项中添加附加依赖项C:¥Program Files¥Microsoft Visual Studio¥VC98¥Lib¥ODBCCP32.LIB,使 用 VC6.0 版本的 odbccp32.lib。 3.编译错误C2664 编译后出现大量的 C2664 错误。 1>c:¥documents and settings¥administrator¥桌面¥host_sp3¥animal cognitiondlg.cpp(949): error C2664: “void ATL::CStringT::Format(const unsigned short *,...)”: 不能将参数 1 从“const ch...