如何为 .NET 程序集(class 库)获取本机 HMODULE?

How to get native HMODULE for .NET assembly (class library)?

我想使用本机 API,它可以接受 HMODULE 作为输入参数。 有没有办法让 HMODULE 执行汇编? 我知道 Module.ModuleHandle 但不知道如何将 ModuleHandle 转换为 HMODULE

像这样:


// convert somehow
var hModule = Assembly.GetExecutingAssembly().ManifestModule.ModuleHandle;

// call native API

这是 Windows 平台相关的代码,因此,如果需要,可以使用特定平台 APIs。

由于 .NET 程序集也是常规 Windows DLL,您应该能够调用本机函数 GetModuleHandle()。如果不是很明显,您可以从调试 运行 的输出中看到模块名称是什么。