_WIN32_WINNT 未定义
_WIN32_WINNT Not defined
我在使用 winternl.h
时遇到了问题,我当时使用了一些数据类型,并且成功地为 x64 编译了它,没有任何问题。但是我做了一些更改,现在由于某种原因它无法编译,通过调试我发现原因似乎归结为 _WIN32_WINNT
根本没有被定义,这导致 winternl.h
没有定义任何类型。正是这个导致了 PEB
结构
的问题
EXTERN_C PEB* NTAPI RtlGetCurrentPeb(VOID);
现在我似乎唯一改变的是删除预编译头文件并创建一个新的 class。两者都没有 _WIN32_WINNT
的定义。我创建了一个全新的项目,复制了导入 winternl.h
的 class 并编译得很好。一切都是一样的,导入、包含和库等。我无法理解我所做的导致未定义的事情。我花了很长时间检查这两个项目,但找不到问题的原因。
如果需要,我可以将代码上传到 pastebin,但是因为两个 classes 在每个项目中都是相同的,我不认为这应该有所作为。我想我一定是在项目设置中弄乱了某些东西,但我不知道那可能是什么
_WIN32_WINNT
来自包含文件 <windows.h>
,因此为了修复您看到的错误:
在抛出错误的文件中,更改为:
#include <winternl.h>
// ...
对此:
#include <windows.h>
#include <winternl.h>
// ...
我在使用 winternl.h
时遇到了问题,我当时使用了一些数据类型,并且成功地为 x64 编译了它,没有任何问题。但是我做了一些更改,现在由于某种原因它无法编译,通过调试我发现原因似乎归结为 _WIN32_WINNT
根本没有被定义,这导致 winternl.h
没有定义任何类型。正是这个导致了 PEB
结构
EXTERN_C PEB* NTAPI RtlGetCurrentPeb(VOID);
现在我似乎唯一改变的是删除预编译头文件并创建一个新的 class。两者都没有 _WIN32_WINNT
的定义。我创建了一个全新的项目,复制了导入 winternl.h
的 class 并编译得很好。一切都是一样的,导入、包含和库等。我无法理解我所做的导致未定义的事情。我花了很长时间检查这两个项目,但找不到问题的原因。
如果需要,我可以将代码上传到 pastebin,但是因为两个 classes 在每个项目中都是相同的,我不认为这应该有所作为。我想我一定是在项目设置中弄乱了某些东西,但我不知道那可能是什么
_WIN32_WINNT
来自包含文件 <windows.h>
,因此为了修复您看到的错误:
在抛出错误的文件中,更改为:
#include <winternl.h>
// ...
对此:
#include <windows.h>
#include <winternl.h>
// ...