平台调用详解

平台调用依赖于元数据在运行时查找导出的函数并封送其参数。 下图显示了这一过程。

对非托管 DLL 函数的“平台调用”调用

平台调用

当“平台调用”调用非托管函数时,它将依次执行以下操作:

  1. 查找包含该函数的 DLL。

  2. 将该 DLL 加载到内存中。

  3. 查找函数在内存中的地址并将其参数推到堆栈上,以封送所需的数据。

    备注

    只在第一次调用函数时,才会查找和加载 DLL 并查找函数在内存中的地址。

  4. 将控制权转移给非托管函数。

平台调用会向托管调用方引发由非托管函数生成的异常。

请参见

概念

使用非托管 DLL 函数

平台调用示例