2016-02-05 129 views
0

即时通讯设法使一个程序巫婆将通过一个进程ID得到命令行的过程。使用eclipse的C++和MinGW编译器NTSTATUS无法解决

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

而且我加入的代码,第一部分是什么:

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

和IM gettig这3个错误:

expected primary-expression before '__attribute__ 

Type 'NTSTATUS' could not be resolved 

typedef 'NTSTATUS' is initialized (use decltype instead) 

在此行中:typedef NTSTATUS (NTAPI *_NtQueryInformationProcess)(

我GOOGLE了这个问题,而且我colud没有找到它...

+0

取代使用实习生al或未公开的或内核API函数(不管),可以考虑使用例如WMIC。例如。 'WMIC PROCESS WHERE Name =“notepad.exe”GET CommandLine'。 –

+0

啊,即时通讯在C++中不太好,所以我甚至不知道什么是wmic ... – Dushan01

+0

这是一个Windows命令,键入命令解释程序,如cmd.exe或powershell.exe。这是Windows Management Isometing Csomethingelse的简称。该功能还可以通过COM和自动化接口访问(纯C++最简单,脚本语言自动化)。 –

回答

0

NTSTATUS在

#include <winternl.h> 

定义为

typedef _Return_type_success_(return >= 0) LONG NTSTATUS; 

而且它的值在

定义
#include <ntstatus.h>