C++與C#互調dll的完成步調。本站提示廣大學習愛好者:(C++與C#互調dll的完成步調)文章只能為提供參考,不一定能成為您想要的結果。以下是C++與C#互調dll的完成步調正文
本文實例展現了C++與C#互調dll的完成步調,在停止年夜型項目同享dll靜態鏈接庫中可以用到。詳細辦法以下:
1、C#挪用C++ dll步調(只能導出辦法):
1. c++樹立空項目->源文件文件夾中添加cpp文件和函數
2. c++屬性設置中,設置裝備擺設類型設置為靜態庫dll,公共說話運轉時支撐改成/clr
3. c#援用c++的dll
4. c#聲明c++的辦法,並添加 DllImport特征
5. c#工程屬性設置為:目的平台x86
6. 留意辦法的類型婚配
7. 激發PInvokeStackImbalance異常:留意:C++的"_declspec"和C#的“CallingConvention=CallingConvention.Cdecl”
別的,可以經由過程VS的異常窗口,撤消失落對 PInvokeStackImbalance異常的檢測:
點擊VS的“調試 - 異常”,翻開異常窗口,睜開選擇“Managed Debugging Assistants\PInvokeStackImbalance”,去失落對應的“激發”可選框。
2、 c++挪用 c# dll的步調(可直接應用C#類):
1. 創立c++掌握台運用法式
2. 拷貝c# dll到c++工程根目次
3. 工程屬性->設置裝備擺設->慣例->公共說話運轉時支撐->clr
工程屬性->設置裝備擺設->c/c++慣例->調試信息格局->zi
工程屬性->設置裝備擺設->c/c++慣例->公共說話運轉時支撐->clr
#using "CSharpDllProject.dll" using namespace CSharpDllProject;
3、 c#挪用c++類步調(c++/cli,可直接應用C++類)
c++/cli簡介:C++/CLI尺度是基於Microsoft提交的尺度C++與通用說話基本構造(Common Language Infrastructure)聯合的技巧
1.應用c++/cli語法對尺度c++類停止包裝(可采取聚合形式,援用尺度c++類,完成一切尺度c++的辦法)
2.c#援用c++ dll後,可直接new出一個 c++/cli創立的托管類對象
願望本文所述辦法對年夜家有所贊助。