微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

_WIN32_WINNT未定义

如何解决_WIN32_WINNT未定义

我在使用winternl.h时遇到了问题,我在那里使用了某些数据类型,并成功地将其编译为x64,没有任何问题。但是,我进行了一些更改,由于某种原因,由于编译失败,由于调试原因,我发现原因似乎完全归结为_WIN32_WINNT,这导致winternl.h没有定义任何内容类型。正是这导致了PEB结构

的问题
EXTERN_C PEB* NTAPI RtlGetCurrentPeb(VOID);

现在,我似乎唯一更改的就是删除预编译的标头并创建一个新类。两者都没有_WIN32_WINNT的定义。我创建了一个全新的项目,复制了导入winternl.h的类并对其进行了很好的编译。一切都是相同的,导入,包含和库等。我无法理解使它无法定义的操作。我花了很长时间研究这两个项目,却找不到问题的原因。

如果需要,我可以将代码上传到pastebin,但是由于每个项目中的两个类都相同,所以我不认为这应该有所作为。我想我必须弄乱项目设置中的某些内容,但我不知道这可能是什么

解决方法

_WIN32_WINNT来自包含文件<windows.h>,因此,为了更正错误,您会看到:

在引发错误的文件中,对此进行更改:

#include <winternl.h>

// ...

对此:

#include <windows.h>
#include <winternl.h>

// ...

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。