>D:\Program Files\Windows CE Tools\wce500\Unxx\include\ARMV4I\winnt.h(2976) : error C2061: syntax error : identifier 'PCONTEXT'
1>D:\Program Files\Windows CE Tools\wce500\Unxx\include\ARMV4I\winnt.h(2977) : error C2059: syntax error : '}'
1>D:\Program Files\Windows CE Tools\wce500\Unxx\include\ARMV4I\winbase.h(1405) : error C2061: syntax error : identifier 'LPCONTEXT'
1>D:\Program Files\Windows CE Tools\wce500\Unxx\include\ARMV4I\winbase.h(1405) : error C2059: syntax error : ';'
1>D:\Program Files\Windows CE Tools\wce500\Unxx\include\ARMV4I\winbase.h(2089) : error C2146: syntax error : missing ')' before identifier 'lpContext'
1>D:\Program Files\Windows CE Tools\wce500\Unxx\include\ARMV4I\winbase.h(2089) : error C2081: 'LPCONTEXT' : name in formal parameter list illegal
1>D:\Program Files\Windows CE Tools\wce500\Unxx\include\ARMV4I\winbase.h(2089) : error C2061: syntax error : identifier 'lpContext'
1>D:\Program Files\Windows CE Tools\wce500\Unxx\include\ARMV4I\winbase.h(2089) : error C2059: syntax error : ';'
1>D:\Program Files\Windows CE Tools\wce500\Unxx\include\ARMV4I\winbase.h(2090) : error C2059: syntax error : ')'
1>D:\Program Files\Windows CE Tools\wce500\Unxx\include\ARMV4I\winbase.h(2097) : error C2143: syntax error : missing ')' before '*'
1>D:\Program Files\Windows CE Tools\wce500\Unxx\include\ARMV4I\winbase.h(2097) : error C2143: syntax error : missing '{' before '*'
1>D:\Program Files\Windows CE Tools\wce500\Unxx\include\ARMV4I\winbase.h(2098) : error C2059: syntax error : ')'
1>.\src\ssbMgr.c(232) : error C2065: 'strcpy_instead_use_StringCbCopyA_or_StringCchCopyA' : undeclared identifier
1>.\src\ssbMgr.c(274) : error C2065: 'sprintf_instead_use_StringCbPrintfA_or_StringCchPrintfA' : undeclared identifier
1>.\src\ssbMgr.c(276) : error C2065: 'strcat_instead_use_StringCbCatA_or_StringCchCatA' : undeclared identifier
1>ROMPatchSettings.c
1>D:\Program Files\Windows CE Tools\wce500\Unxx\include\ARMV4I\winnt.h(2976) : error C2061: syntax error : identifier 'PCONTEXT'
1>D:\Program Files\Windows CE Tools\wce500\Unxx\include\ARMV4I\winnt.h(2977) : error C2059: syntax error : '}'
1>D:\Program Files\Windows CE Tools\wce500\Unxx\include\ARMV4I\winbase.h(1405) : error C2061: syntax error : identifier 'LPCONTEXT'
给你个例子
a.h
#ifdef BBB
typedef struct a{
int x;
}STRCT_A;
#endif
b.h
#define BBB
c.c
#include "a.h"
#include "b.h"
#ifdef BBB
STRCT_A sa = {0};
#endif
这里c里面肯定编译失败,因为你先include a.h,然后发现没有定义BBB,所以没有STRCT_A这个结构,然后你又include b.h,所以在c里面有STRCT_A sa = {0};这行,然后就不认识STRCT_A,所以后面就有各种错了 ,解决的方法就是在c.c里include的顺序换一下就可以了追问
winnt.h 是微软给的标准头文件,里面确实有开关去控制,比如说#if defined (_ARM_),我没在其他地方发现这个宏的定义,难道是环境变量?该怎么去设置
追答ARM是一种编译器,如果你是使用arm编译器编译的,那么这个宏就是定义了的,一般来说标准头文件不会有问题,出现这种问题一般是你自己include标准头文件的时候顺序不对或者有些需要include的文件没有添加进来,如果你自己的文件不多,你可以尝试看看哪些包括了系统头文件的