程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C++與C#互調dll的完成步調

C++與C#互調dll的完成步調

編輯:關於C++

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創立的托管類對象

願望本文所述辦法對年夜家有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved