using System;
using System.Runtime.InteropServices;
class Program
{
// 引用C++ DLL中的函数,需要使用DllImport特性
[DllImport("MyCppDll.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern int Add(int a, int b);
static void Main(string[] args)
{
// 调用C++ DLL中的Add函数
int result = Add(5, 3);
Console.WriteLine("Result: " + result);
}
}
DllImport:这是C#中用于引用非托管代码(如C++编写的DLL)的关键字。通过DllImport属性,可以指定要调用的DLL文件名以及调用约定(CallingConvention)。在这个例子中,我们假设C++ DLL名为MyCppDll.dll,并且它导出了一个名为Add的函数。
extern:关键字extern表示该方法是在外部实现的,即不在当前程序集中定义,而是由外部库提供。
CallingConvention.Cdecl:指定了调用约定为cdecl,这通常是C/C++编译器使用的默认调用约定。确保C#和C++之间的调用约定一致非常重要,否则可能会导致堆栈不平衡或其他问题。
静态方法:Add方法被声明为静态方法,因为它是一个外部方法,不需要实例化类即可调用。
Main方法:在Main方法中,我们调用了Add方法,并将结果打印到控制台。
上一篇:c,c++,c#有何区别
下一篇:c c++ c#
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站