网站首页 > 资源文章 正文
近期,因为工作的需要,要把一个在VC6.0下开发的项目整体迁移到VS2010下面去,这个工程已经创建并更新维护差不多十多年的时间了,经手人数不胜数,里面的东西更是千奇百怪,想到这些就头皮发麻,不过,工作嘛,该做还是要做的。
果然,用2010打开了dsw文件后,重新编译时,提示出了无数的错误与异常,看的头皮发麻,只能耐下心来,仔细分析,逐个修改,发现基本就以下8大类型的错误。
fatal error C1083: 无法打开包括文件:“fstream.h”: No such file or directory
修改方法:将#include "fstream.h" 修改为
#include <fstream>
using namespace std;
error C2440: “static_cast”: 无法从“LRESULT (__thiscall CGpsView::* )(WPARAM,LPARAM)”转换为“AFX_PMSG”,在匹配目标类型的范围内没有具有该名称的函数
error C2440: “static_cast”: 无法从“void (__thiscall CGpsView::* )(WPARAM,LPARAM)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”, 在匹配目标类型的范围内没有具有该名称的函数
解决方法:vs2010下对函数的结构要求比较严格,On_MEssage类型函数, 返回类型为LRESULT,要有参数和返回值 WPARAM,LPARAM;ON_COMMAND 类型函数,返回类型为 void, 且不能有参数,因此,第一个Error把 ON_COMMAND 改为 On_MEssage 就可以了;第二个把返回值类型改为 LRESULT即可。
error C2664: “IsInTimeCode”: 不能将参数 1 从“CTimeCodesList *”转换为“const CTimeCodesList *&” 转换丢失限定符。
解决方法:比较简单,强制类型转换即可,CTimeCodesList *pTimeCodesList; 改为 const CTimeCodesList *pTimeCodesList;
error C2065: “i”: 未声明的标识符
解决方法:变量作用域的问题,所以在for或if语句之前定义int i = 0 ;即可
verror C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
解决方法:在默认定义时,直接定义为int
error C2039: “WriteHuge”: 不是“CFile”的成员
解决方法:函数发生了变更,因此将ReadHuge()改为Read(),WriteHuge()改为Write()
error C2668: “pow”: 对重载函数的调用不明确
c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(583): 可能是“long double pow(long double,int)”
c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(535): 或 “float pow(float,int)”
c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(497): 或 “double pow(double,int)”
尝试匹配参数列表“(LONG, int)”时
解决方法:重载函数参数类型与定义不匹配,使用强制类型转换就可以了。
LIBCMT.lib(sprintf.obj) : error LNK2005: _sprintf 已经在 msvcrtd.lib(MSVCR100D.dll) 中定义
LIBCMT.lib(invarg.obj) : error LNK2005: __invoke_watson 已经在 msvcrtd.lib(MSVCR100D.dll) 中定义
LIBCMT.lib(invarg.obj) : error LNK2005: __invalid_parameter 已经在 msvcrtd.lib(MSVCR100D.dll) 中定义
LIBCMT.lib(vsnprnc.obj) : error LNK2005: __vsnprintf_s 已经在 msvcrtd.lib(MSVCR100D.dll) 中定义
解决方法:这个问题时默认库与其他库冲突,解决方法如下:
解决方法
配置属性-〉C/C++->代码生成 -〉运行时库,改为多线程/MD
猜你喜欢
- 2024-09-29 想知道软件怎么开发,来看Microsoft Visual C++6.0
- 2024-09-29 LOL-LPL:VG上单奎因零作用,JDG完美运营2-0轻取VG收获二连胜
- 2024-09-29 Qt编写DLL给外部程序调用,提供VC/C#/C调用示例(含事件)
- 2024-09-29 不懵圈,一篇教你看懂尿常规(尿常规检查指标怎么看)
- 2024-09-29 黑客软件漏洞分析0基础教学 初级栈溢出 入门到地狱
- 2024-09-29 C/C++语言编程系列008——手把手教你创建及调试动态库DLL程序
- 2024-09-29 vc操作Excel实现截取指定区域生成jpg图片7-利用剪贴板实现
- 2024-09-29 预精轧机轴承失效分析及结构改进设计
- 2024-09-29 vc操作Excel实现截取指定区域生成jpg图片2-导入系统Excel组件库
- 2024-09-29 Visual C++ 6.0软件安装包以及安装教程
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)