繁体   English   中英

编译来自winnt.h,winbase.h和excpt.h的windows mobile项目的错误

[英]Compile errors from winnt.h, winbase.h, and excpt.h for windows mobile project

我有成功编译的桌面项目,但在我向项目添加新配置以支持Windows Mobile平台后,我收到以下错误:

error C2146: syntax error : missing ';' before identifier 'ContextRecord' winnt.h
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int winnt.h

error C2146: syntax error : missing ';' before identifier 'LPCONTEXT'   winbase.h
error C2040: 'PCONTEXT' : '_CONTEXT *' differs in levels of indirection from 'int'  excpt.h

该项目不包括winnt.h,但它包括windows.h,windbase.h。 我在谷歌搜索我必须更改项目属性 - >配置属性 - > C / C ++ - >预处理器 - >定义添加像_MBCS,或添加$( ARCHFAM ),$(ARCHFAM)。 或者通过将windows.h放在其他头文件的顶部来改变我已经完成的头文件的顺序,但都没有修复错误。

有什么建议可以解决这些问题吗? 谢谢。

#include<windows.h>在所有这三个中,windows.h将它们全部拖入。这是你需要的唯一包含。 它涵盖了所有windows api的80%,减去了os的一些专门的离散方面(例如直接2d,加密等)

我也遇到了这些错误。 我的问题是我忘了“;” 在我的一个头文件中我的课程定义背后。

代替:

class myClass
{
   ...
};

我有:

class myClass
{
    ...
}

也许它有助于某人......

有必要手动纠正文件winnt.h中的语法错误

行:typedef void * POINTER_64 PVOID64;

我们更正:typedef void * POINTER_64,* PVOID64;

或者两个:typedef void * POINTER_64; typedef void * PVOID64;

错误消失了

我的dll头文件中有windows.h。
将它从头文件中移出,只移入需要windows.h的.cpp项目中并且工作正常。

DLL的控制台测试应用程序在尝试包含一堆Windows内容时生气了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM