Hey,
Ich hab ein Problem beim Beschaffen eines Modulehandles unter 64 Bit Systemen.
Ein 32Bit Prozess in einem 64Bit System lädt bei mir 2 verschiedene "NtDll.dll"s
([Only registered and activated users can see links. Click Here To Register...])
Ich möchte aber die andere haben.
Dazu hab ich mich mal schlau gemacht, und folgendes gefunden ([Only registered and activated users can see links. Click Here To Register...]):
Ich erhalte jedoch trotzdem das Handle zur SysWOW64\NtDll.dll.
Was mach ich falsch..?
Ich hab ein Problem beim Beschaffen eines Modulehandles unter 64 Bit Systemen.
Ein 32Bit Prozess in einem 64Bit System lädt bei mir 2 verschiedene "NtDll.dll"s
([Only registered and activated users can see links. Click Here To Register...])
Wenn ich nun GetModuleHandle("NtDll.dll") nutze, bekomme ich das Handle zur SysWOW64\NtDll.dll.Quote:
%WinDir%\SysWOW64\NtDll.dll
%WinDir%\System32\NtDll.dll
Ich möchte aber die andere haben.
Dazu hab ich mich mal schlau gemacht, und folgendes gefunden ([Only registered and activated users can see links. Click Here To Register...]):
Hab ich probiert, und so versucht:Quote:
Originally Posted by MSDNIf lpModuleName does not include a path and there is more than one loaded module with the same base name and extension, you cannot predict which module handle will be returned. To work around this problem, you could specify a path.
Code:
char WinDir[1024]; int Length = GetWindowsDirectory(WinDir, 1024); String NtDll = AnsiString(WinDir) + "\\System32\\NtDll.dll"; char* t1 = AnsiString(NtDll).c_str(); HANDLE NtDllHandle = GetModuleHandle(t1);
Was mach ich falsch..?