这个属性是什么

本文关键字:是什么 属性 | 更新日期: 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 指示链接器动态链接到外部程序集中的方法。

该属性具有必需参数和可选参数。可选参数按名称调用。

在这种情况下,参数是程序集的名称以及其中调用的方法的名称。