c# - .NET Framework 和 .NET Core 中的进程地址不同
问题描述
我有一个在 .NET Framework 中开发的应用程序,现在我将其更新为 .NET CORE,在 .NET CORE 中,kernel32.dll (DllImportAttribute) 的 GetProcAddress 方法获得的进程地址与 .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 框架进程地址 (load_library_w): 0x777c1620
- NET CORE 进程地址 (load_library_w): 0x00007ff887a5fe80
我想知道如何获得与 .NET Framework 中相同的内存地址。
解决方案
推荐阅读
- c - 声明/初始化结构时,每个花括号代表什么?(警告:初始化器 [-Wmissing-braces] 周围缺少大括号)
- c# - 如何删除类别和子类别?
- javascript - 是否可以从 JavaScript 更新 python 中的变量?
- angular - 使用数据布尔值展开/折叠材质树(Angular 7)
- apache-spark - 在 pyspark 中的 DataFrame 上使用 toPandas() 时出现神秘的“pyarrow.lib.ArrowInvalid:浮点值被截断”错误
- javascript - 从 RiotJS 中的异步更新事件刷新模板
- javascript - Google gtag_report_conversion:如何在不重新加载页面的情况下使用它?
- ember.js - Rails API - 如何启用 ActiveStorage::DirectUploadsController
- javascript - 谷歌标签管理器最接近文本
- python - TypeError:“float32”类型的对象不是 JSON 可序列化的