C# Extern如何使用

avatar
作者
猴君
阅读量:0

在C#中,extern关键字用于声明一个方法是在外部代码中实现的。这通常用于调用非托管代码(如C++编写的代码)或与本地共享库(如.dll文件)交互。使用extern时,你需要提供一个函数声明,该声明指定了方法的名称、返回类型和参数列表。然后,你可以在C#代码中使用这个声明来调用该方法,就像它是在C#中实现的一样。

以下是一个简单的示例,展示了如何在C#中使用extern关键字调用一个外部方法:

  1. 首先,假设你有一个C++编写的共享库,其中包含一个名为AddNumbers的方法,该方法接受两个整数参数并返回它们的和。你可以使用C++/CLI来创建一个包装器类,以便在C#中调用这个方法。
// C++/CLI wrapper class public ref class MathWrapper { public:     static int AddNumbers(int a, int b) {         return a + b;     } }; 
  1. 接下来,在C#项目中,你可以使用extern关键字声明一个与MathWrapper::AddNumbers方法对应的方法。请注意,你需要使用DllImport属性来指定共享库的名称和位置。
using System; using System.Runtime.InteropServices;  class Program {     // Declare the extern method using P/Invoke     [DllImport("MathLibrary.dll", CallingConvention = CallingConvention.Cdecl)]     public static extern int AddNumbers(int a, int b);      static void Main() {         int result = AddNumbers(3, 4);         Console.WriteLine("The sum is: " + result);     } } 

在这个例子中,DllImport属性指定了共享库的名称(在这种情况下为MathLibrary.dll)以及调用约定(在这种情况下为CallingConvention.Cdecl)。请确保将共享库放在C#项目的输出目录中,或者提供正确的路径。

现在,当你运行C#程序时,它将调用C++编写的AddNumbers方法,并将结果输出到控制台。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!