2016-02-05 136 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>