Адрес процесса отличается в. NET Framework и. NET core - PullRequest
0 голосов
/ 17 июня 2020

У меня есть приложение, разработанное в. NET Framework, и теперь я обновляю его до. NET CORE, а в. NET CORE метод GetProcAddress для kernel32.dll (DllImportAttribute) получает другой адрес процесса чем такое же приложение в. NET Framework, потому что такое бывает, если это точно такой же код? Как я могу заставить. NET CORE возвращать тот же адрес для этого процесса, что и. NET Framework?

[DllImport("kernel32.dll", CharSet = CharSet.Ansi, SetLastError = true)]
internal static extern IntPtr GetProcAddress(IntPtr hModule, string procName);

private static void GetProcess()
{
   IntPtr mh = Kernel32.GetModuleHandle("kernel32.dll");
   if (mh != IntPtr.Zero)
   {
      IntPtr load_library_w = Kernel32.GetProcAddress(mh, "LoadLibraryW");               
   }
}
  • NET Адрес процесса Framework (load_library_w): 0x777c1620
  • NET Адрес процесса CORE (load_library_w): 0x00007ff887a5fe80

Я хотел бы знать, как я могу получить такую ​​же память адрес как в. NET Framework.

...