前端之家收集整理的这篇文章主要介绍了
c# – DllImport如何工作?,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想了解DllImport的真正工作原理.我需要一个简单的英文解释 – 就是简单的解释.
它是否与DLL的导出方法静态链接,如“include file”指令/静态库?
或者当它到C#程序中的执行点时,它是否动态地从DLL中调用方法?
它使用两个核心的winapi
函数.首先是LoadLibrary(),将一个DLL加载到一个进程中的winapi
函数.它使用您为DLL指定的
名称.第二个是GetProcAddress(),该
函数返回DLL中
函数的地址.它使用您指定的
函数的
名称.然后,一些管道运行,使用您指定的参数构建
函数调用的堆栈框架,并在其找到的地址处
调用该
函数.
所以是的,这是非常有活力的.这不会发生,直到你的代码实际上落在一个调用被诱骗函数的语句上.技术术语是“后期绑定”,而不是Windows加载程序为本机代码使用的更常见的早期绑定.
原文链接:https://www.f2er.com/csharp/96740.html