编译公司一个几年前的老项目,是从VC6.0升级到VS2005的。app
1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(295) : error C2059: 语法错误 : “__stdcall” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(295) : error C2091: 函数返回函数 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(295) : error C4430: 缺乏类型说明符 - 假定为 int。注意: C++ 不支持默认 int 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(295) : error C2146: 语法错误 : 缺乏“;”(在标识符“p”的前面) 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(295) : error C4430: 缺乏类型说明符 - 假定为 int。注意: C++ 不支持默认 int 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(295) : error C4430: 缺乏类型说明符 - 假定为 int。注意: C++ 不支持默认 int 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(295) : error C2061: 语法错误 : 标识符“Ptr” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(295) : error C2805: 二进制“operator =”的参数太少 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(295) : error C2333: “CComCtlWrapper::DSA_Create_Type::operator =”: 函数声明中有错误;跳过函数体 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(295) : error C2143: 语法错误 : 缺乏“;”(在“->”的前面) 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(295) : error C4430: 缺乏类型说明符 - 假定为 int。注意: C++ 不支持默认 int 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(295) : error C4430: 缺乏类型说明符 - 假定为 int。注意: C++ 不支持默认 int 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(295) : error C2833: “operator Ptr”不是可识别的运算符或类型 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(295) : error C2059: 语法错误 : “newline” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(295) : error C2334: “{”的前面有意外标记;跳过明显的函数体 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(295) : error C2146: 语法错误 : 缺乏“;”(在标识符“_DSA_Create”的前面) 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(295) : error C4430: 缺乏类型说明符 - 假定为 int。注意: C++ 不支持默认 int 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(295) : error C4430: 缺乏类型说明符 - 假定为 int。注意: C++ 不支持默认 int 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(295) : warning C4183: “_DSA_Create”: 缺乏返回类型;假定为返回“int”的成员函数 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(296) : error C2061: 语法错误 : 标识符“HDSA” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(296) : error C2061: 语法错误 : 标识符“HDSA” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(297) : error C2061: 语法错误 : 标识符“HDSA” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(297) : error C2061: 语法错误 : 标识符“HDSA” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(298) : error C2061: 语法错误 : 标识符“HDSA” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(298) : error C2061: 语法错误 : 标识符“HDSA” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(299) : error C2061: 语法错误 : 标识符“HDSA” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(299) : error C2061: 语法错误 : 标识符“HDSA” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(300) : error C2059: 语法错误 : “__stdcall” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(300) : error C2091: 函数返回函数 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(300) : error C4430: 缺乏类型说明符 - 假定为 int。注意: C++ 不支持默认 int 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(300) : error C2146: 语法错误 : 缺乏“;”(在标识符“p”的前面) 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(300) : error C4430: 缺乏类型说明符 - 假定为 int。注意: C++ 不支持默认 int 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(300) : error C4430: 缺乏类型说明符 - 假定为 int。注意: C++ 不支持默认 int 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(300) : error C2061: 语法错误 : 标识符“Ptr” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(300) : error C2805: 二进制“operator =”的参数太少 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(300) : error C2333: “CComCtlWrapper::DPA_Create_Type::operator =”: 函数声明中有错误;跳过函数体 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(300) : error C2143: 语法错误 : 缺乏“;”(在“->”的前面) 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(300) : error C4430: 缺乏类型说明符 - 假定为 int。注意: C++ 不支持默认 int 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(300) : error C4430: 缺乏类型说明符 - 假定为 int。注意: C++ 不支持默认 int 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(300) : error C2833: “operator Ptr”不是可识别的运算符或类型 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(300) : error C2059: 语法错误 : “newline” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(300) : error C2334: “{”的前面有意外标记;跳过明显的函数体 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(300) : error C2146: 语法错误 : 缺乏“;”(在标识符“_DPA_Create”的前面) 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(300) : error C4430: 缺乏类型说明符 - 假定为 int。注意: C++ 不支持默认 int 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(300) : error C4430: 缺乏类型说明符 - 假定为 int。注意: C++ 不支持默认 int 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(300) : warning C4183: “_DPA_Create”: 缺乏返回类型;假定为返回“int”的成员函数 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(301) : error C2061: 语法错误 : 标识符“HDPA” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(301) : error C2061: 语法错误 : 标识符“HDPA” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(302) : error C2061: 语法错误 : 标识符“HDPA” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(302) : error C2061: 语法错误 : 标识符“HDPA” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(303) : error C2061: 语法错误 : 标识符“HDPA” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(303) : error C2061: 语法错误 : 标识符“HDPA” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(304) : error C2061: 语法错误 : 标识符“HDPA” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(304) : error C2061: 语法错误 : 标识符“HDPA” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(305) : error C2061: 语法错误 : 标识符“HDPA” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(305) : error C2061: 语法错误 : 标识符“HDPA” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(306) : error C2061: 语法错误 : 标识符“HDPA” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(306) : error C2061: 语法错误 : 标识符“HDPA” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(307) : error C2061: 语法错误 : 标识符“HDPA” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(307) : error C2061: 语法错误 : 标识符“HDPA” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(308) : error C2061: 语法错误 : 标识符“HDPA” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(308) : error C2061: 语法错误 : 标识符“HDPA” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(309) : error C2061: 语法错误 : 标识符“HDPA” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(309) : error C2061: 语法错误 : 标识符“HDPA” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(310) : error C2061: 语法错误 : 标识符“HDPA” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(310) : error C2061: 语法错误 : 标识符“HDPA” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(295) : error C2614: “CComCtlWrapper::DSA_Create_Type”: 非法的成员初始化:“p”不是基或成员 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(295) : error C2065: “p”: 未声明的标识符 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(295) : error C2039: “Ptr”: 不是“CComCtlWrapper::DSA_Create_Type”的成员 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(295) : 参见“CComCtlWrapper::DSA_Create_Type”的声明 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(295) : error C2065: “Ptr”: 未声明的标识符 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(295) : error C2143: 语法错误 : 缺乏“;”(在“GetProcAddress”的前面) 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(295) : error C2065: “HDSA”: 未声明的标识符 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(295) : error C2146: 语法错误 : 缺乏“;”(在标识符“result”的前面) 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(295) : error C2065: “result”: 未声明的标识符 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(295) : error C2678: 二进制“!=”: 没有找到接受“CComCtlWrapper::DSA_Create_Type”类型的左操做数的运算符(或没有可接受的转换) 1>XXX\Microsoft Visual Studio 8\VC\PlatformSDK\include\guiddef.h(197): 多是“int operator !=(const GUID &,const GUID &)” 1>试图匹配参数列表“(CComCtlWrapper::DSA_Create_Type, int)”时 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(295) : error C2064: 项不会计算为接受 2 个参数的函数 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(296) : error C2065: “hdsa”: 未声明的标识符 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(297) : error C2065: “pfnCB”: 未声明的标识符 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(297) : error C2065: “pData”: 未声明的标识符 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(298) : error C2065: “i”: 未声明的标识符 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(299) : error C2065: “pitem”: 未声明的标识符 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(300) : error C2614: “CComCtlWrapper::DPA_Create_Type”: 非法的成员初始化:“p”不是基或成员 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(300) : error C2039: “Ptr”: 不是“CComCtlWrapper::DPA_Create_Type”的成员 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(300) : 参见“CComCtlWrapper::DPA_Create_Type”的声明 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(300) : error C2143: 语法错误 : 缺乏“;”(在“GetProcAddress”的前面) 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(300) : error C2065: “HDPA”: 未声明的标识符 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(300) : error C2146: 语法错误 : 缺乏“;”(在标识符“result”的前面) 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(300) : error C2678: 二进制“!=”: 没有找到接受“CComCtlWrapper::DPA_Create_Type”类型的左操做数的运算符(或没有可接受的转换) 1>XXX\Microsoft Visual Studio 8\VC\PlatformSDK\include\guiddef.h(197): 多是“int operator !=(const GUID &,const GUID &)” 1>试图匹配参数列表“(CComCtlWrapper::DPA_Create_Type, int)”时 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(300) : error C2064: 项不会计算为接受 1 个参数的函数 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(301) : error C2065: “hdpa”: 未声明的标识符 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(309) : error C2065: “pfnCompare”: 未声明的标识符 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(309) : error C2065: “lParam”: 未声明的标识符 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(310) : error C2065: “pFind”: 未声明的标识符 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(310) : error C2065: “iStart”: 未声明的标识符 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.h(310) : error C2065: “options”: 未声明的标识符 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxwin.h(3017) : error C2061: 语法错误 : 标识符“PBUTTON_IMAGELIST” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxwin.h(3018) : error C2061: 语法错误 : 标识符“PBUTTON_IMAGELIST” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.inl(94) : error C2143: 语法错误 : 缺乏“;”(在“__stdcall”的前面) 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.inl(94) : error C2433: “HDSA”: 不容许在数据声明中使用“inline” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.inl(94) : error C4430: 缺乏类型说明符 - 假定为 int。注意: C++ 不支持默认 int 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.inl(94) : error C2371: “HDSA”: 重定义;不一样的基类型 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.inl(94) : error C4430: 缺乏类型说明符 - 假定为 int。注意: C++ 不支持默认 int 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.inl(95) : error C2146: 语法错误 : 缺乏“)”(在标识符“hdsa”的前面) 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.inl(95) : warning C4229: 使用了记时错误 : 忽略数据上的修饰符 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.inl(95) : error C2433: “AfxDSA_Destroy”: 不容许在数据声明中使用“inline” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.inl(95) : error C2059: 语法错误 : “)” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.inl(95) : error C2143: 语法错误 : 缺乏“;”(在“{”的前面) 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.inl(95) : error C2447: “{”: 缺乏函数标题(是不是老式的形式表?) 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.inl(96) : error C2146: 语法错误 : 缺乏“)”(在标识符“hdsa”的前面) 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.inl(96) : warning C4229: 使用了记时错误 : 忽略数据上的修饰符 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.inl(96) : error C2182: “AfxDSA_DestroyCallback”: 非法使用“void”类型 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.inl(96) : error C2433: “AfxDSA_DestroyCallback”: 不容许在数据声明中使用“inline” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.inl(96) : error C2059: 语法错误 : “)” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.inl(96) : error C2143: 语法错误 : 缺乏“;”(在“{”的前面) 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.inl(96) : error C2447: “{”: 缺乏函数标题(是不是老式的形式表?) 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.inl(97) : error C2146: 语法错误 : 缺乏“)”(在标识符“hdsa”的前面) 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.inl(97) : warning C4229: 使用了记时错误 : 忽略数据上的修饰符 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.inl(97) : error C2433: “AfxDSA_GetItemPtr”: 不容许在数据声明中使用“inline” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.inl(97) : error C2059: 语法错误 : “)” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.inl(97) : error C2143: 语法错误 : 缺乏“;”(在“{”的前面) 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.inl(97) : error C2447: “{”: 缺乏函数标题(是不是老式的形式表?) 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.inl(98) : error C2146: 语法错误 : 缺乏“)”(在标识符“hdsa”的前面) 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.inl(98) : warning C4229: 使用了记时错误 : 忽略数据上的修饰符 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.inl(98) : error C2433: “AfxDSA_InsertItem”: 不容许在数据声明中使用“inline” 1>XXX\Microsoft Visual Studio 8\VC\atlmfc\include\afxcomctl32.inl(98) : fatal error C1003: 错误计数超过 100;正在中止编译
网上说“此问题已经解决,系统版本问题,须要包含这个文件时,先#define WINVER 0x400 包含后在#define WINVER 0x600”函数
换了系统,换了vs2005版本,加了#define WINVER 0x400、#define WINVER 0x600,可是彻底不起做用,因而打算重写此程序。ui
重建一个项目是彻底能够的,可是要把原来项目中的所有功能移过来是很麻烦的。因而想到在原项目上改,先去掉多余功能,若是没问题再一点点添加功能。调试
发现当去掉附加包含目录中全部项目不须要的头文件,只保留须要的头文件时,奇迹发生了,程序编译经过,再也不有那个错误。code
这个问题多是包含了不应包含的某一个头文件,能够经过把不须要的全都去掉试试。反正我是这么解决了,汗!orm