多语言展示
当前在线:1644今日阅读:27今日分享:41

c#调用C++ DLL文件

C#有时候需要调用C++动态链接库(DLL),因为C++在某些地方有着比C#更优越的性能,而一般C#程序员对C++了解不多,但又希望用C++来扩充程序的一些性能,比如核心算法的安全性,高效性等,就可能需要C++动态链接库。
工具/原料
1

vs2013

2

电脑一台

方法/步骤
1

首先打开vs2013(其他版本也可以),在C++项目中选择 Win32程序,然后在控制台程序或者win32程序任选一个。 写上项目名字点创建。(本例用VS2013系统默认项目名,路径随意。)

2

选“空项目”建一个计较干净的DLL程序。

3

创建项目,这样我们得到一个空项目,在这个项目中,除了几个文件加以外什么也没有,我们在文件夹上点右键,创建新项。在新项里面分别创建一个CPP文件和一个def文件。

4

在“.def”文件中添加代码:LIBRARYEXPORTS  mySum在“.cpp”文件中添加代码://宏定义  #define LIBEXPORT_API extern 'C' __declspec(dllexport)//设置函数  LIBEXPORT_API int __stdcall mySum(int a, int b){ return a + b;}

5

编译C++ DLL文件,找到编译好的.dll文件,并放到C#程序目录下。

6

c#创建控制台应用程序对C++ dll进行访问using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Runtime.InteropServices; namespace ConsoleApplication1{    class Program    {        [DllImport('Win32Project1.dll')]        public static extern int mySum(int x, int y);        static void Main(string[] args)        {            int x = mySum(5, 9);            x = x++;            Console.WriteLine(x.ToString());            string y=  Console.ReadLine();             }    }}执行后得出正确结果:14

注意事项
1

建立.def文件

2

使用stdcall修饰接口函数

推荐信息