Module Handle
-
hey ich will auf die memory address von einer dll eines Processes kommen habe dazu 2 Funktionen gefunden:
DWORD GetModuleBase(LPSTR lpModuleName, DWORD dwProcessId) { MODULEENTRY32 lpModuleEntry = {0}; HANDLE hSnapShot = CreateToolhelp32Snapshot( TH32CS_SNAPMODULE, dwProcessId ); if(!hSnapShot) return NULL; lpModuleEntry.dwSize = sizeof(lpModuleEntry); BOOL bModule = Module32First( hSnapShot, &lpModuleEntry ); while(bModule) { if(!strcmp( lpModuleEntry.szModule, lpModuleName ) ) { CloseHandle( hSnapShot ); return (DWORD)lpModuleEntry.modBaseAddr; } bModule = Module32Next( hSnapShot, &lpModuleEntry ); } CloseHandle( hSnapShot ); return NULL; } int GetProcessID(char ProcessExe) { HANDLE hSnap, hTemp; PROCESSENTRY32 pe; pe.dwSize = sizeof(PROCESSENTRY32); //EnableDebugPrivilege(); hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if(Process32First(hSnap, &pe)) { do { hTemp = OpenProcess(PROCESS_ALL_ACCESS, 0, pe.th32ProcessID); if(hTemp) { if (pe.szExeFile == ProcessExe) { return ; } } } while(Process32Next(hSnap, &pe)); } return 0; }jedoch erhalte ich Fehler:
1. ´strcmp( lpModuleEntry.szModule, lpModuleName ) wchar ist mit dem Typ const char inkompatibel
2. pe.szExeFile == ProcessExe Operandentypen sind inkompatibel ("WCHAR *" und "char")ich benutze Microsoft Visual C++ 2010 Express
-
Geh in die Projekteinstellungen (Menü -> Projekt -> ...-Eigenschaften)
und dort auf die Seite "Allgemein"Stell dort den Zeichensatz von "Unicode" auf "Multibyte" um.
-
omg wasn scheiß!!!
DANKE
-
Besser:
include <TCHAR.h>Und alle
chars nachTCHARumstellen und die entsprechenden Funktinen aus der Headerdatei nehmen:
Aus strcmp wird _tcscmp etc. Damit kann man für beide Konfigurationen kompilieren.
-
und am Allerbesten: demnächst im richtigen Forum fragen. Das hat mit Standard-C++ garnichts zu tun

-
Dieser Thread wurde von Moderator/in pumuckl aus dem Forum C++ (auch C++0x) in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.