VS2010 常见错误

来源:互联网 发布:演艺行业的二手数据库 编辑:程序博客网 时间:2024/05/24 06:18

 原文地址:http://blog.csdn.net/l5201314131413141314/article/details/8863081

1、error C4430: missing type specifier - int assumed. Note: C++ does not support default-int在项目属性->Configration Properties->C/C++->Command Line页面的Additional Options中加入/wd44302、error MSB3073: The command regsvr32 /s /c 解决办法  最近将VC2002 代码移植到VC2010,出现编译错误:1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(183,5): error MSB3073: The command "regsvr32 /s /c "D:\VC++Prj\source code\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:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(183,5): error MSB3073: :VCEnd" exited with code 3.英文版处理办法: Project->Configuration Properties->General->Target Extension设置为.ocx 或者.dllProject->Configuration Properties->Linkerl->General ->Output File设置为$(OutDir)$(ProjectName)$(TargetExt)中文版处理办法: 在项目上点右键,选择“属性”->“配置属性”->“常规”->“目标文件扩展名”,设置为.ocx 或者.dll在项目上点右键,选择“属性”->“配置属性”->“链接器”->“ 常规 ”->“输出文件”,设置为$(OutDir)$(ProjectName)$(TargetExt)3、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.cpp1>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: 无法在要求对象展开的函数中使用 __try1>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了 4、Error MSB3073 exited with code 3The issue that causes "Error MSB3073 exited with code 3" happens to be with the VALUE in the Outputs property under Project > Properties > Configuration Properties > Custom Build Step.When I choose Edit for Outputs, a dialog box comes up.  I enter a value of "$(OutDir)\regsvr32.trg" in the upper textbox then click OK.  Now for some reason VS 2010 changes the display text to show "$(OutDir)\regsvr32.trg;%(Outputs)".  I'm not sure why or if that is the cause of the problem.However, I will get "Build Successful" if I change my Output value to "<inherit from parent or project defaults>" instead of choosing Edit and putting a value in.  No more Error MSB3073 exited with code 3.I guess I can say this issue is resolved but I'd like to know why/what causes this issue to begin with. 5、 fatal error LNK1181: cannot open input file'largeint.lib'在linker->Input->Additional Dependencies中去掉largeint.lib6、error MSB3073最近将VC2002 代码移植到VC2010,出现编译错误:1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(183,5): error MSB3073: The command "regsvr32 /s /c "D:\VC++Prj\source code\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:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(183,5): error MSB3073: :VCEnd" exited with code 3.英文版处理办法: Project->Configuration Properties->General->Target Extension设置为.ocx 或者.dllProject->Configuration Properties->Linkerl->General ->Output File设置为$(OutDir)$(ProjectName)$(TargetExt)中文版处理办法: 在项目上点右键,选择“属性”->“配置属性”->“常规”->“目标文件扩展名”,设置为.ocx 或者.dll在项目上点右键,选择“属性”->“配置属性”->“链接器”->“ 常规 ”->“输出文件”,设置为$(OutDir)$(ProjectName)$(TargetExt)  7、error D8016: '/ZI' and '/GL' command-line options are incompatible把Debug调试项改为/ZI /OdProject Settings 项->C/C++ -> General 8、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改掉就可以了 9、C:\Program Files\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlcomcli.h(1101): error C2059: syntax error : 'catch'1>C:\Program Files\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlcomcli.h(1101): error C2143: syntax error : missing ';' before '{'C/C++->Preprocessor->Preprocessor Definitions 下面的try=__try去掉。 10、regsvr32无法注册控件depends.exe打开要注册的控件,找出这个控件所依赖的文件,缺少的文件在网上下载下来,补上就可以了。11、Graphedt.exe打开后在任务栏里面有,但是点击后无法显示打开任务管理器,在应用程序中找到Graphedt.exe,右击选择最大化就可以看见程序了。12、开机自启动的注册表目录:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run下面,如果要开机启动某个程序,只要把这个程序的路径下载这个位置就可以了。13、弹出对话框“attempt an unsupport operation!”,是因为被关联的控件的ID号和DoDataExchange中的控件ID不同。14、“Encountered an improper argument”,控件被删除了,但是还有代码对控件进行操作而导致的 15、C:\Program Files\Microsoft SDKs\Windows\v7.0A\include\winioctl.h(39): error C2374: 'GUID_DEVINTERFACE_DISK' : redefinition; mult重复包含了头文件“winioctl.h”16、error C2059: syntax error : 'catch'右键点击工程名,properties->Configuration Properties->C/C++->PreProcessor->Preprocessor Definitions中将try=__try去掉即可!17、>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(183,5): error MSB3073: The command "regsvr32 /s /c D:\DirectShow及协议资料\DirectShow 实务精选+源码\DirectShow实务精选源码\SourceCodes\Chapter03\VODDemo\FilterNetReceiver\.\Release\FilterNetReceiver.dll1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(183,5): error MSB3073: echo regsvr32 exec.time > D:\DirectShow及协议资料\DirectShow 实务精选+源码\DirectShow实务精选源码\SourceCodes\Chapter03\VODDemo\FilterNetReceiver\Release\FilterNetReceiver.trg1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(183,5): error MSB3073: :VCEnd" exited with code 3.18、error MSB3073最近将VC2002 代码移植到VC2010,出现编译错误:1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(183,5): error MSB3073: The command "regsvr32 /s /c "D:\VC++Prj\source code\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:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(183,5): error MSB3073: :VCEnd" exited with code 3.英文版处理办法: Project->Configuration Properties->General->Target Extension设置为.ocx 或者.dllProject->Configuration Properties->Linkerl->General ->Output File设置为$(OutDir)$(ProjectName)$(TargetExt)中文版处理办法: 在项目上点右键,选择“属性”->“配置属性”->“常规”->“目标文件扩展名”,设置为.ocx 或者.dll在项目上点右键,选择“属性”->“配置属性”->“链接器”->“ 常规 ”->“输出文件”,设置为$(OutDir)$(ProjectName)$(TargetExt)这个仍然不能解决的话就将“属性”->“配置属性”->“链接器”->Custom Build Step中的Command line,Description,Outputs都选为默认值。即去除  不要自注册。19、error C2872: “CString”: 不明确的符号  DUILIB与MFC的结合会产生Crect等冲突。解决方法:1:在stdafx.h中添加#if USE(DuiLib)#define  CRect DuiLib::CRect#define  CPoint DuiLib::CPoint#define  CSize DuiLib::CSize#else#define CRect ::CRect#define  CPoint ::CPoint#define  CSize ::CSize#endif在用的地方定义DuiLib2:将duilib中的crect工程中全部改名Cduirect等。全工程替换。不过一分钟的事。3:不在MFC中使用 using namespace Duilib 在使用duilib时都加上Duilib::Crect。20、关于这样的错误 libcpmtd.lib(string.obj) : error LNK2005: "public: void __thiscallVC2008下 在一个动态库工程中, 改成了编程静态库, 成功编译, 但使用静态库的工程编译时就出现下面一堆连接错误. 经过查找 解决方法如下:说是因为 Project->C/C++->Code Generation->Runtime Library 这个选项,LIB和主程序(EXE)里选择的不一致引起的。后来改成一样就好了。 把exe工程 改为/MTD(因为Lib工程是选择/MTD的) 编译还是错误于是 把EXE工程和Lib工程都选择为/MDD 成功编译21、error C2159: more than one storage class specified 将vc6.0的工程转换成vs2008居然就编译通过了22、error C2872: 'ostream' : ambiguous symbol改变了#include <iostream>的位置就好了 

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

如果:Stdafx.h or sdkddkver.h 中没有_WIN32_WINNT , 可以通过project ->property ->Configuration Properties ->C/C++ -> Preprocessor ->Preprocessor Definitions. 将_WIN32_WINNT的定义改为0x0501问题解决。

0 0
原创粉丝点击