WinAPI Anfänger Fehler
-
Hi,
Ich musste heute mal wieder etwas für Windows machen(ansonsten als für Linux).
Habe von der WinAPI nicht so viel Ahnunh.
Es geht hierbei um Speicher Manipulation:#include<windows.h> #include<iostream> #include<stdio.h> using namespace std; int main(int argc, char *argv[]) { if(argc == 1) { return 1; } PROCESS_INFORMATION pi; if(CreateProcess(0,(LPTSTR)argv[1],0,0,false,0,0,0,0,&pi)) { cout << "Program not found!" << endl; return 1; } HANDLE hGame = OpenProcess(PROCESS_ALL_ACCESS,false,pi.dwProcessId); int value; while(1) { //blablabla } CloseHandle(&pi); return 0; }Jedoch stürtzt das Programm bei CreateProcess ab.
Nur ich weiß nicht warum, fehlermeldung gibts keine.MFG ReduX
-
Der cast zu LPTSTR wird im unicode modus nicht funktionieren und außerdem muss die process_info struct initialisiert werden(cbSize).
-
Und ein Zeiger auf eine Struktur vom Typ STARTUPINFO fehlt auch.
-
Danke für eure Antworten.
Funktioniert nun.Weiß von euch jemand ob es eine Funktion gibt mit der man auslesen kann welche Speicherbereich von dem Programm in benutzung sind?
MFG ReduX
-
VirtualQuery, NtQuerySystemInformation, usw.

-
Codeproject, Forumsuche, ...
-
Hi,
Also VirtualQueryEx scheint das richtige für mich zu sein.
Die Funktion schreibt ja daten in den MEMORY_BASIC_INFORMATION struct.
Nur wie gehe ich mit denen Daten um? Bzw. ich verstehe diese ganzen Dateitypen nicht wie z.B. PVOID gibt es unter Linux nicht.MFG ReduX
-
Wie Du damit umgehst, steht in der MSDN. PVOID ist das, wonach es sich anhört: Ein "Pointer to void", also nicht mehr als: void*.
Das bekommste (entsprechende IDE-Funktionalität vorrausgesetzt) auch heraus, mit nem Rechtsklick auf das Schlüsselwort und dann auch "Gehe zu Definition..."
.