NTSTATUS无法解决

时间:2016-02-05 09:06:38

标签: c++ windows mingw nt-native-api

我试图制作一个程序,它将通过进程ID获取进程的命令行。我使用eclipse c ++和mingw编译器

所以我找到了一个1教程如何做到这一点,它需要 ntstatus ,所以像我在教程中包括#include <ntstatus.h>

我添加了第一部分代码:

typedef NTSTATUS (NTAPI *_NtQueryInformationProcess)(
    HANDLE ProcessHandle,
    DWORD ProcessInformationClass,
    PVOID ProcessInformation,
    DWORD ProcessInformationLength,
    PDWORD ReturnLength
    );

并且即时通知这三个错误:

expected primary-expression before '__attribute__

Type 'NTSTATUS' could not be resolved

typedef 'NTSTATUS' is initialized (use decltype instead)

在这一行:typedef NTSTATUS (NTAPI *_NtQueryInformationProcess)(

我用Google搜索了这个问题,而且我没有找到它......

2 个答案:

答案 0 :(得分:1)

NTSTATUS在

中定义
#include <winternl.h>

作为

typedef _Return_type_success_(return >= 0) LONG NTSTATUS;

及其值在

中定义
#include <ntstatus.h>

答案 1 :(得分:0)

Thee 也需要定义为 _WIN32_WINNT ,否则 <winternl.h> 将不会生成任何代码。我的 DLL 项目只吐了 Syntax error: NTSTATUS。如何修复:

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