c# – DllImport如何工作?
发布时间:2020-12-15 17:43:26 所属栏目:百科 来源:网络整理
导读:我想了解DllImport的真正工作原理.我需要一个简单的英文解释 – 就是简单的解释. 它是否与DLL的导出方法静态链接,如“include file”指令/静态库? 或者当它到C#程序中的执行点时,它是否动态地从DLL中调用方法? 解决方法 它使用两个核心的winapi函数.首先是
我想了解DllImport的真正工作原理.我需要一个简单的英文解释 – 就是简单的解释.
它是否与DLL的导出方法静态链接,如“include file”指令/静态库? 或者当它到C#程序中的执行点时,它是否动态地从DLL中调用方法? 解决方法
它使用两个核心的winapi函数.首先是LoadLibrary(),将一个DLL加载到一个进程中的winapi函数.它使用您为DLL指定的名称.第二个是GetProcAddress(),该函数返回DLL中函数的地址.它使用您指定的函数的名称.然后,一些管道运行,使用您指定的参数构建函数调用的堆栈框架,并在其找到的地址处调用该函数.
所以是的,这是非常有活力的.这不会发生,直到你的代码实际上落在一个调用被诱骗函数的语句上.技术术语是“后期绑定”,而不是Windows加载程序为本机代码使用的更常见的早期绑定. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |