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错误,结果是变量的定义位置不对,应该在函数块的最前面。这是一个编程习惯的问题。

猜你喜欢

转载自blog.csdn.net/DANFBAORE/article/details/81535700