1. 程式人生 > >C++如何調用C#編寫的 DLL

C++如何調用C#編寫的 DLL

csharp class 配置 copy pac print pre lec visual

由於C#編繹出來的DLL不是計算機所能直接識別的二進制指令碼,需要CLS進行再解釋,說到這,我想有些朋友應該知道C#項目需要引用C++編寫的DLL時,可以直接引用DLLMPORT來實現調用,而反向的話,C++項目卻不能簡單靠引用來使用C#編寫的DLL。由於C++項目默認配置是沒有公共語言運行支持的,因此我們需要更改一些配置,來實現C++項目對C#編寫DLL的調用。具體如何操作,我會在接下來的文章中進行說明,以供大家參考。

示例用C#類庫文件
1、打開Microsoft Visual Studio 2010,選擇文件->新建->項目。 
這裏寫圖片描述 
2、在新建項目窗口中選擇其他語言->Visual C#->類庫,設置名稱:MathDLL,設置解決方案名:MathDLL。 
這裏寫圖片描述 
3、單擊確定完成項目創建 4、將類Class1重命名為”MathTest“ 5、為類MathTest添加以下代碼: [csharp] view plain copy using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace MathDLL { public class MathTest { public int demoAdd(int x, int y) {
int sum; sum = x + y; return sum; } } } C++客戶端程序創建 1、打開Microsoft Visual Studio 2010,選擇文件->新建->項目。 這裏寫圖片描述 2、在新建項目窗口中選擇其他語言->Visual C++->Win 32控制臺應用程序,設置名稱:MathCon,設置解決方案名:MathCon。 3、單擊確定,在出現的Win32 應用程序向導的概述對話框中點擊下一步。 這裏寫圖片描述 4、在應用程序設置中,選擇應用程序類型下的控制臺應用程序,勾選附加選項下的”預編譯頭“。
5、單擊完成創建項目 6、將C#編寫的DLL文件放置在C++的可執行程序目錄 7、使用#using引用C#編寫的DLL文件MathDLL.dll,具體代碼如下: [cpp] view plain copy #include "stdafx.h" #using "../debug/MathDLL.dll" using namespace MathDLL; int _tmain(int argc, _TCHAR* argv[]) { int sum,x,y; x=10; y=22; MathTest ^a = gcnew MathTest(); sum=a->demoAdd(x,y); sum=x+y; [cpp] view plain copy printf("計算結果:%d",sum); return 0; } 8、配置C++項目MathCon的屬性配置:添加公共語言運行支持。 9、運行結果如下:

C++如何調用C#編寫的 DLL