C#調(diào)用C++dll的方法和步驟
其他分享涉及到的概念和方法對于像我這樣比較菜的選手看起來比較費(fèi)勁并且很難抓住重點(diǎn),這里我總結(jié)了一段時(shí)間的研究成果供初學(xué)者救濟(jì)之用,簡單明了。
1、新建項(xiàng)目->Visual C++->Win32項(xiàng)目 MyDLL
注意:C++編寫的dll一般是不能直接拿來C#調(diào)用,需要先新建個(gè)C++的工程把dll里的方法重新封裝成可被C#外部調(diào)用的函數(shù)。


2、MyDLL.cpp里的代碼如下:
extern "C" _declspec(dllexport)int add(int a ,int b) { int sum=a+b;return sum;}注意:函數(shù)前一定要加extern "C" _declspec(dllexport),可被外部引用

3、項(xiàng)目->屬性->常規(guī)->公共語言運(yùn)行庫支持->公共語言運(yùn)行庫支持(/clr)

4、F5編譯程序,在Debug文件夾中找到生成MyDLL.dll目標(biāo)文件備用

1、方法/步驟2
新建項(xiàng)目->Visual C#->控制臺應(yīng)用程序 dllConsoleApplication1

2、將步驟1生成的MyDLL.dll文件copy到dllConsoleApplication1工程的根目錄下

3、
Program.cs代碼如下using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Runtime.InteropServices; //必須添加,不然DllImport報(bào)錯(cuò)namespace dllConsoleApplication1{ class CPPDLL { [DllImport("MyDLL.dll", CharSet = CharSet.Ansi)] //引入dll,并設(shè)置字符集 public static extern inProgram.cs代碼如下using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Runtime.InteropServices; //必須添加,不然DllImport報(bào)錯(cuò)namespace dllConsoleApplication1{ class CPPDLL { [DllImport("MyDLL.dll", CharSet = CharSet.Ansi)] //引入dll,并設(shè)置字符集 public static extern int add(int a ,int b); } class Program { static void Main(string[] args) { t add(int a ,int b); } class Program { static void Main(string[] args) { int sum=CPPDLL.add(3, 4); } }} int sum=CPPDLL.add(3, 4); } }}4、
編譯程序,在程序中加斷點(diǎn),查看函數(shù)的計(jì)算結(jié)果

5、到這里,C++dll里的方法已經(jīng)在C#里調(diào)用成功了。到這里,C++dll里的方法已經(jīng)在C#里調(diào)用成功了。
新聞熱點(diǎn)
疑難解答
圖片精選