VS2008 c++程序转换成VS2013遇到的问题 及代码编译遇到的错误解决办法

如果系统中安装了VS2008应该可以在配置属性的-》常规-》平台工具集中选择VS2008,这样可正常编译,不出问题
如果没有安装遇到以下错误的解决方案如下:

1.    多字节程序编译时会提示转成UNICODE或安装vc_mbcsmfc.exe  ,如果不想改成UNICODE的,依提示安装即可。
安装时关闭VS,完成后需要等待几分钟才可打开VS,否则提示VS正在安装,应该是后台还在处理。

2.error MSB4030: “libcmt.lib”对于“Link”任务的“IgnoreAllDefaultLibraries”-----
解决方法:
需要在配置-》链接器-》输入-》忽略特定默认库中加:libcmt.lib
参考:https://www.cnblogs.com/qinfengxiaoyue/archive/2013/02/01/2889668.html

3.error LNK2005: __invoke_watson 已经在 MSVCRT.lib(MSVCR120.dll) 中定义---
解决方法:
假设使用了一个VS2008编译的的DLL名为 NEWFUNCDLL
属性->配置属性->C/C++->预处理器->预处理器定义中加入;NEWFUNCDLL
参考:https://blog.csdn.net/xiao_lxl/article/details/50675061

4,vs2013报错 无法打开包含文件 "winsock2.h" 的一种解决办法
Goto Configuration Properties -> General - Set the Platform Toolset to v120_xp (Visual Studio 2013 - Windows XP) - Recompile 
(打开项目属性-配置属性-常规-平台工具集-‘选择xp那一项’-重新编译)

5,vs2010 出错:error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
https://blog.csdn.net/iracer/article/details/51138135
项目—属性—配置属性—清单工具—输入输出—嵌入清单,改为“否”
这种办法有时不行,需要:
复制 C:\Windows\winsxs\x86_netfx-cvtres_for_vc_and_vb_b03f5f7f11d50a3a_6.1.7601.17514_none_ba1c770af0b2031b 目录下的 cvtres.exe 
到C:\Program Files\Microsoft Visual Studio 10.0\VC\bin 目录下,直接覆盖替换。

6,错误   LNK2026: 模块对于 SAFESEH 映像是不安全的。    
1. 打开该项目的“属性页”对话框。 
2. 单击“链接器”文件夹。 
3. 选择高级-映像具有安全异常处理程序-选择否 

7,Error   C2733: second C linkage of overloaded function 'cmpeq' not allowed    
去掉extern "C"

8,将C代码在VC++中编译,经常会出现error C2275错误,结果是变量的定义位置不对,应该在函数块的最前面。这是一个编程习惯的问题。

9,error C1189: #error :  MFC does not support WINVER less than 0x0501.  Please change the definition of WINVER in your project properties or precompiled header

stdafx.h 中删除有关WINVER等的定义即可。其它类似定义也需要删除。

10.error C1189: #error :  missing -D__STDC_CONSTANT_MACROS / #define __STDC_CONSTANT_MACROS

当前在C++11和C11已经不再检测这个宏了 删除即可。

11.另外需要注意32位与64位版本转换时外部加载的库文件(LIB)如果不匹配,编译时也会报

error LNK2001: unresolved external symbol   这种情况很类似库文件没有引用,但其实是引用了但系统没识别出来,

此时需要更换正确的版本

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值