VS2010工具常见的部分错误整理(二)

发布于: 2018-05-23    浏览: 2139    作者:系统管理员

一、altdef.h 都是这个文件里的定义
#ifndef ATLTRY
#define ATLTRY(x) ATLTRYALLOC(x)
#endif //ATLTRY
出问题的都是这个宏
ATLTRY(szKey = new TCHAR[cbKey]);
ATLTRY(pszW.Allocate(_convert));

 ATLTRY(szReg.Allocate(dwSize + 1));
1>FilterImageGrabber.cpp
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include\atlcomcli.h(954) : error C2059: 语法错误 : catch
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include\atlcomcli.h(954) : error C2143: 
语法错误 : 缺少“;(在“{”的前面)
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include\atlcomcli.h(970) : error C2059: 
语法错误 : catch
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include\atlcomcli.h(970) : error C2143: 
语法错误 : 缺少“;(在“{”的前面)
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include\atlcomcli.h(995) : error C2712: 
无法在要求对象展开的函数中使用 __try
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include\atlcomcli.h(1008) : error C2059: 
语法错误 : catch
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include\atlcomcli.h(1008) : error C2143: 
语法错误 : 缺少“;(在“{”的前面)
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include\atlcomcli.h(1024) : error C2059: 
语法错误 : catch
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include\atlcomcli.h(1024) : error C2143: 
语法错误 : 缺少“;(在“{”的前面)
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include\atlcomcli.h(1190) : error C2059: 
语法错误 : catch
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include\atlcomcli.h(1190) : error C2143: 
语法错误 : 缺少“;(在“{”的前面)
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include\statreg.h(107) : error C2059: 
语法错误 : catch
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include\statreg.h(107) : error C2143: 
语法错误 : 缺少“;(在“{”的前面)
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include\statreg.h(113) : error C2059: 
语法错误 : catch
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include\statreg.h(113) : error C2143: 
语法错误 : 缺少“;(在“{”的前面)
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include\statreg.h(423) : error C2059: 
语法错误 : catch
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include\statreg.h(423) : error C2143: 
语法错误 : 缺少“;(在“{”的前面)
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include\statreg.h(587) : error C2059: 
语法错误 : catch
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include\statreg.h(587) : error C2143: 
语法错误 : 缺少“;(在“{”的前面)
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include\statreg.h(901) : error C2059: 
语法错误 : catch
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include\statreg.h(901) : error C2143: 
语法错误 : 缺少“;(在“{”的前面)
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include\statreg.h(971) : error C2059: 
语法错误 : catch
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include\statreg.h(971) : error C2143: 
语法错误 : 缺少“;(在“{”的前面)

 

原来是工程属性-〉预定义里的问题,它在里面定义了try=_try,把这个删除就OK


二: fatal errorLNK1181: cannot open input file'largeint.lib'
linker->Input->Additional Dependencies中去掉largeint.lib


三:error MSB3073
最近将VC2002 代码移植到VC2010,出现编译错误:
1>C:\ProgramFiles\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(183,5): errorMSB3073: The command "regsvr32 /s /c "D:\VC++Prj\sourcecode\zutai\cha06\Meter\.\Debug\Meter.dll"
1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(183,5):error MSB3073: echo regsvr32 exec. time > ".\Debug\regsvr32.trg"
1>C:\ProgramFiles\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(183,5): errorMSB3073: :VCEnd" exited with code 3.
英文版处理办法: 
Project->Configuration Properties->General->Target Extension
设置为.ocx 或者.dll
Project->Configuration Properties->Linkerl->General ->Output File
设置为$(OutDir)$(ProjectName)$(TargetExt)
中文版处理办法: 
在项目上点右键,选择“属性”->“配置属性”->“常规”->“目标文件扩展名”,设置为.ocx 或者.dll
在项目上点右键,选择“属性”->“配置属性”->“链接器”->“ 常规 ”->“输出文件”,设置为$(OutDir)$(ProjectName)$(TargetExt)


四:fatal error C1189: #error :  This file requires _WIN32_WINNT to be #defined at least to 0x0403. Value 0x0501 or higher is recommended.


解决办法:C/C++->Preprocessor->Preprocessor Definitions中的_WIN32_WINNT=0x0501改掉就可以了  


五.在运行控制台程序的时候经常会一闪而过


解决办法:可以再代码的最后加上system("pause");

原文地址:https://blog.csdn.net/lcalqf/article/details/44488829    (侵删!)

在线客服

售前咨询

售后服务

投诉/建议

服务热线
0731-83091505
18874148081