gpt4 book ai didi

c# - DllImport 是如何工作的?

转载 作者:可可西里 更新时间:2023-11-01 08:52:38 27 4
gpt4 key购买 nike

我想了解 DllImport 的真正工作原理。我需要一个通俗易懂的英语解释——意思是简单的解释。

它是否与 DLL 中导出的方法静态链接,如“包含文件”指令/静态库?

还是在C#程序中到达执行点时动态调用DLL中的方法?

最佳答案

它使用了两个核心 winapi 函数。首先是 LoadLibrary(),这是将 DLL 加载到进程中的 winapi 函数。它使用您为 DLL 指定的名称。其次是 GetProcAddress(),返回 DLL 中函数地址的 winapi 函数。它使用您指定的函数的名称。然后一些管道运行为函数调用构建堆栈帧,使用您指定的参数并在它找到的地址调用函数。

是的,这是非常动态的。这不会发生,直到您的代码实际落在调用 pinvoked 函数的语句上。技术术语是“后期绑定(bind)”,而不是 Windows 加载程序对 native 代码使用的更常见的早期绑定(bind)。

关于c# - DllImport 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14471571/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com