vc60迁移到vs2010中的问题的解决方法.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
vc60迁移到vs2010中的问题的解决方法

1.编译错误C20651c:\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.链接错误LNK2019odbccp32.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错误。1c:\documents and settings\administrator\桌面\host_sp3\animal cognitiondlg.cpp(949): error C2664: “void ATL::CStringTBaseType,StringTraits::Format(const unsigned short *,...)”: 不能将参数 1 从“const char [3]”转换为“const unsigned short *”1 ? ? ? ? ?with1 ? ? ? ? ?[1 ? ? ? ? ? ? ?BaseType=wchar_t,1 ? ? ? ? ? ? ?StringTraits=StrTraitMFCwchar_t1 ? ? ? ? ?]与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换这个问题在VC6程序升级到VS2010时都会遇到,原因就是编码模式的不同。在VC6中,默认使用MBCS(Multi-Byte Character Set)编码,即多字节字符;而VC8、VC7默认的是Unicode编码。所以解决办法便是程序属性常规选项的字符集改为“Use Multi-Byte Character Set”即可。字符基础(ASCII,DBCS,Unicode)所有的 string 类都是以C-style字符串为基础的。C-style字符串是字符数组。所以我们先介绍字符类型。这里有3种编码模式对应3种字符类型。第一种编码类型是单子节字符集(single-byte character set or SBCS)。在这种编码模式下,所有的字符都只用一个字节表示。ASCII是SBCS。一个字节表示的0用来标志SBCS字符串的结束。第二种编码模式是多字节字符集(multi-byte character set or MBCS)。一个MBCS编码包含一些一个字节长的字

文档评论(0)

shenlan118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档