C#調(diào)用C++dll方法步驟
C#調(diào)用C++dll的方法和步驟
其他分享涉及到的概念和方法對于像我這樣比較菜的選手看起來比較費(fèi)勁并且很難抓住重點(diǎn),這里我總結(jié)了一段時間的研究成果供初學(xué)者救濟(jì)之用,簡單明了。
1、新建項目->Visual C++->Win32項目 MyDLL
注意:C++編寫的dll一般是不能直接拿來C#調(diào)用,需要先新建個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、項目->屬性->常規(guī)->公共語言運(yùn)行庫支持->公共語言運(yùn)行庫支持(/clr)
4、F5編譯程序,在Debug文件夾中找到生成MyDLL.dll目標(biāo)文件備用
1、方法/步驟2
新建項目->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報錯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報錯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ù)的計算結(jié)果
5、到這里,C++dll里的方法已經(jīng)在C#里調(diào)用成功了。到這里,C++dll里的方法已經(jīng)在C#里調(diào)用成功了。
相關(guān)文章
C#實現(xiàn)定時任務(wù)Task Scheduler的示例代碼
這篇文章主要為大家詳細(xì)介紹了C#實現(xiàn)定時任務(wù)Task Scheduler的相關(guān)知識,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-02-02WPF使用DrawingContext實現(xiàn)二維繪圖
這篇文章介紹了WPF使用DrawingContext實現(xiàn)二維繪圖的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06C#字符串內(nèi)存分配與駐留池學(xué)習(xí)分享
這篇文章主要介紹了C#字符串內(nèi)存分配與駐留池學(xué)習(xí)分享,大家參考使用吧2013-12-12Unity Shader實現(xiàn)新手引導(dǎo)遮罩鏤空效果
這篇文章主要為大家詳細(xì)介紹了Unity Shader實現(xiàn)新手引導(dǎo)遮罩鏤空效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-02-02