VC6工程升级为VC2010(1)

入公司来的第二个任务

把两个工程项目从VC6升级为VC2010

第一步,肯定就是用2010打开vc6的项目DSW文件了。然后等着2010转换了。转换完毕,点击生成。


然后就一堆错误了

第一类错误:

error C2440: “static_cast”:   

无法从“void (__thiscall CTrueColorToolBar::* )(NMTOOLBARA *,LRESULT *)”转换为“void (__thiscall CCmdTarget::* )(NMHDR *,LRESULT *)”    d:\工作文档\工作记录\第一个月\第2、3周工作内容\code\picker\picker\truecolortoolbar.cpp    42


VS2010和VC6的不同导致,导致消息响应函数的返回值类型不匹配


根据错误提示,直接修改就好了。把NMTOOLBARA改为HMHDR就行了



错误    23    error C2440: “static_cast”: 无法从“void (__thiscall CPicturePropertyPage::* )(WPARAM,LPARAM)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”    d:\工作文档\工作记录\第一个月\第2、3周工作内容\code\picker\picker\picturepropertypage.cpp    94


这种事返回类型不一样造成的,把void 改为LRESULT就可以了。


第二类错误:

for(int i=0;i<xx;i++)

然后下面的所有都是

for(i=0;i<xx;i++)

导致报i没有定义的错误

引发这种错误的原因是:vs2010更符合C++的标准,临时变量的作用域已经修正了,VC6这种写法得修正。

修改方式很简单。。

把定义提前

int i=0;

for(i=0;i<xx;I++);



for(CSubclassWnd* p =   theHookMap.Lookup(m_hWnd);p;p=p->m_pNext)

改为

CSubclassWnd*p=NULL;

for( p =   theHookMap.Lookup(m_hWnd);p;p=p->m_pNext)


第三类错误:

在编译错误都结束后,又出现了一个问题

这种问题,直接在配置里把vc98的库加进库文件中。


第四类错误:

#ifdef _AFXDLL
 Enable3dControls();   // Call this when using MFC in a shared DLL
#else
 Enable3dControlsStatic(); // Call this when linking to MFC statically
#endif

这段代码在VS2010中已经不需要再使用了,可能已经隐藏的实现了吧。

第五类错误:

可能出现下面的错误:

我用VS打开VC6建的工程,经常出现这种错误:
错误 1 fatal error CVT1100: 重复的资源。type:MANIFEST, name:1, language:0x0409 CVTRES
错误 2 fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 *****
开源项目中老的Win32工程转到VS2005工程出现的问题
将.RC2文件里的RT_MANIFEST定义注释掉即可 或者
工程属性->配置属性-> 清单工具->输入和输出->嵌入清单,选择[否],即可 或者
双击 Resource Files 下的 xxx.rc 修改 RT_MANIFEST 英语(美国)为 中文(中国)
这些是我从网上搜到的方法 后两个方法我试了 好使 但是第一个.RC2文件中没有看到RT_MANIFEST定义




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VC6.0的打开工程闪退可能是由于多种原因导致的。以下是一些可能的原因及解决方法: 1. 工程文件损坏:检查工程文件是否存在损坏或错误,在打开工程之前可以尝试备份并修复工程文件。还可以尝试创建一个新的工程,然后将源代码和资源文件添加到新的工程中。 2. 插件冲突:某些VC6.0的插件可能与其他软件或插件发生冲突,导致打开工程时出现闪退。可以尝试禁用或卸载不必要的插件,并确保插件与VC6.0版本兼容。 3. 硬件或驱动问题:某些硬件或驱动程序可能与VC6.0不兼容,导致闪退。请确保计算机硬件和驱动程序是最新的,并更新或升级不兼容的硬件或驱动程序。 4. 操作系统兼容性问题:VC6.0是一个相对较旧的编译器,可能不与最新的操作系统版本兼容。尝试在与VC6.0兼容的操作系统上打开工程,或者考虑升级到更新的Visual Studio版本。 5. 缺少必要的依赖项:某些工程所依赖的库文件、头文件或其他资源可能缺失或不正确。请确保工程所需的所有依赖项都正确安装,并设置正确的路径。 6. 内存不足:如果计算机内存不够,可能会导致打开工程时闪退。可以尝试关闭其他占用内存的程序,或者考虑增加计算机的内存容量。 总之,解决VC6.0打开工程闪退问题需要综合考虑多个可能的原因,并逐一尝试相应的解决方法。如果以上方法都无法解决问题,建议咨询相关专业人士或考虑升级到更新的编译器版本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值