C# 编程/关键字/extern
外观
关键字 extern
表示正在调用的方法存在于 DLL 中。
一个名为 tlbimp.exe
的工具可以创建一个包装程序集,允许 C# 与 DLL 交互,就像它是一个 .NET 程序集一样,即使用构造函数实例化它,调用它的方法。
旧的 DLL 不适用于此方法。相反,您必须明确告诉编译器要调用哪个 DLL,要调用哪个方法以及要传递哪些参数。由于参数类型非常重要,您还可以显式定义应将什么类型传递给方法作为参数。
以下是一个示例
using System;
using System.Runtime.InteropServices;
namespace ExternKeyword
{
public class Program
{
static void Main()
{
NativeMethods.MessageBoxEx(IntPtr.Zero, "Hello there", "Caption here", 0, 0);
}
}
public class NativeMethods
{
[DllImport("user32.dll")]
public static extern MessageBoxEx(IntPtr hWnd, string lpText, string lpCaption, uint uType, short wLanguageId);
}
}
[DllImport("user32.dll")]
告诉编译器要引用哪个 DLL。Windows 按 PATH 环境变量定义的方式搜索文件,因此将在失败之前搜索这些路径。
该方法也是静态的,因为 DLL 可能不理解如何被“创建”,因为 DLL 可以用不同的语言创建。这允许直接调用该方法,而不是实例化它然后使用它。
C# 关键字 | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
特殊的 C# 标识符(上下文关键字) | |||||||||||||||
| |||||||||||||||
上下文关键字(用于查询) | |||||||||||||||
|