Guybrush Threepwood Geschrieben 8. August 2007 Geschrieben 8. August 2007 Ich möchte die Funktion NTQuerySystemInformation verwenden welche laut MSDN per Run-Time Dynamic Linking geladen werden muss da keine entsprechende Lib dafür existiert. Gesagt getan //typedef DWORD (*NTQUERYSYSTEMINFORMATION)(SYSTEM_INFORMATION_CLASS, void*, ULONG, ULONG*); typedef DWORD (*NTQUERYSYSTEMINFORMATION)(DWORD, DWORD*, DWORD, void*); NTQUERYSYSTEMINFORMATION NtQuerySystemInformation; HMODULE hLib = LoadLibrary("Ntdll.dll"); NtQuerySystemInformation = (NTQUERYSYSTEMINFORMATION)GetProcAddress(hLib,"NtQuerySystemInformation"); [/PHP] Leider bedkomme ich beim Aufrufen der Funktion später aber einen Fehler das das Value von ESP nicht richtig gespeichert wurde und das normalerweise geschähe wenn man eine Funktion mit einer bestimmten calling convention mit einer anderen aufruft. Das typedef von NtQuerySystemInformation bzw. dessen Parameter hab ich so aus einem anderen Code den ich im Internet gefunden habe. Wenn ich die erste auskommentierte Variante bentutzte welche exakt die Parameter aus der MSDN verwendet kommt aber der selbe Fehler. Hat jemand eine Idee dazu bzw. wie lege ich beim Run-Time Dynamic Linking die calling convention fest (geht das überhaupt?)?
Klotzkopp Geschrieben 8. August 2007 Geschrieben 8. August 2007 Das hat mit Runtime Dynamic Linking erst mal nichts zu tun. Die Calling Convention ist Teil des Funktionszeigertyps: typedef NTSTATUS (__stdcall *NTQUERYSYSTEMINFORMATION)(SYSTEM_INFORMATION_CLASS, PVOID, ULONG, PULONG); Vermutlich ist in deinem Project __stdcall nicht die Default-Calling-Convention.
Guybrush Threepwood Geschrieben 8. August 2007 Autor Geschrieben 8. August 2007 OMG stimmt ja :upps Danke schön, die Frage ist mir ja direkt schon peinlich...
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden