afxcomctl32.h与afxcomctl32.inl报错

afxcomctl32.h与afxcomctl32.inl报错

编译公司一个几年前的老项目,是从VC6.0升级到VS2005的。app

1.编译时报缺乏头文件,因而附件包含目录,因而出现了如下报错:

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;正在中止编译

2.通过调试分析感受是#include <afxwin.h>时出错了,可是不知怎么解决,因而到网上找资料

网上说“此问题已经解决,系统版本问题,须要包含这个文件时,先#define WINVER 0x400 包含后在#define WINVER 0x600”函数

换了系统,换了vs2005版本,加了#define WINVER 0x400、#define WINVER 0x600,可是彻底不起做用,因而打算重写此程序。ui

3.重写程序

重建一个项目是彻底能够的,可是要把原来项目中的所有功能移过来是很麻烦的。因而想到在原项目上改,先去掉多余功能,若是没问题再一点点添加功能。调试

发现当去掉附加包含目录中全部项目不须要的头文件,只保留须要的头文件时,奇迹发生了,程序编译经过,再也不有那个错误。code

4.总结

这个问题多是包含了不应包含的某一个头文件,能够经过把不须要的全都去掉试试。反正我是这么解决了,汗!orm

相关文章
相关标签/搜索