这个属性是什么
本文关键字:是什么 属性 | 更新日期: 2023-09-27 17:55:42
我对在一些寻路示例中发现的代码感到非常困惑:
[System.Runtime.InteropServices.DllImport("KERNEL32.DLL", EntryPoint="RtlZeroMemory")]
public unsafe static extern bool ZeroMemory(byte* destination, int length);
什么意思?为什么导入中有括号?
DllImportAttribute
指示链接器在何处查找此函数的代码。这就是你的程序在你调用它时知道该做什么的方式。
在这种特定情况下,该属性指示 ZeroMemory
方法的实现存在于 kernel32.dll
中,它被导出为 RtlZeroMemory
。
这是一个互操作性属性。它允许开发人员通过 .NET API 调用其他库中的非托管代码。
有问题的属性是指定零内存方法的实际实现是在外部dll"Kernel32.dll中
DllImportAttribute 指示链接器动态链接到外部程序集中的方法。
该属性具有必需参数和可选参数。可选参数按名称调用。
在这种情况下,参数是程序集的名称以及其中调用的方法的名称。