将VC+6的工程迁移到VS2010上


转载请注明出处

有时为了项目的需要,要将VC6++的工程迁移到VS2010上。由于编译环境的不同,会导致出现很多的错误,针对于这些报错,需要进行针对性修改。由于VC++Project的不同,出现的错误也会不尽相同,先列举一些常见的错误及其改正方法!

  1. 首先用VS2010直接打开DSW文件,并进行转换
    这里写图片描述
  2. (1)属性-C/C++-语言-将WeChar_t视为内置类型,选择否
    (2)stdafx.cpp
    在stdafx,h中添加#include<..\src\mfc\afximpl.h>,(添加情况视文件目录而定。总之是将afximple.h加进来)

  3. 出现错误error c1010070: Failed to load and parse the manifest. {_~ F:\Program Files\NavyMTE\NetViewer20150729\NetWatcher\res\NetWatcher.manifest
    解决方法:删除工程里的 这里写图片描述

  4. 出现错误:error LNK1181: 无法打开输入文件“wpcap.lib”
    解决方法:解决方案-属性-配置属性-链接器-附加库目录。将wpcap.lib文件夹的地址写进去
    这里写图片描述
  5. Error C2440:
    “=”: 无法从“void (a )(int,int,int,int)”转换为“void (a )(int,char,int,int)”
    解决方法:将两个void指针里面的参数类型统一。要么都是int,int,int,int;要么都是int,char,int,int

  6. 出现如下错误:
    这里写图片描述
    1) 把属性-配置属性-链接器-常规-输出文件与属性-配置属性-常规-目录文件名
    的路径保持一致,如输出目录:.\Bin则目录文件名为:.\Bin\A.exe
    2) 将属性-配置属性-链接器-常规-输出文件修改如下
    这里写图片描述
    注:修改后,Warning MSB8012,Targets(990,5)警告也会消失
    3) 在安装目录下VS2010/VC/Bin下的cvtres.exe删除
    注:以上三种方法尝试,本人第二种成功

  7. 出现无调试信息
    这里写图片描述
    解决方法:属性-配置属性-链接器-调试信息,选择“是”。


更多推荐