中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++/CLI怎么調用C#

發布時間:2021-11-30 16:52:00 來源:億速云 閱讀:389 作者:iii 欄目:編程語言

這篇文章主要講解了“C++/CLI怎么調用C#”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“C++/CLI怎么調用C#”吧!

跨越語言的障礙:C++/CLI 調用 C#

當C#項目需要引用C++dll的時候可以直接使用DLLIMPORT來進行調用。而反向的話,C++項目并不能簡單靠引用來使用C#DLL。因為C++項目默認配置是沒有公共語言運行庫支持的。所以我們需要更改一些配置來進行對C# dll的調用。先用托管C++(CLI)將C#的dll進行一次封裝,然后由非托管C++調用封裝好的dll。其中關鍵步驟c++/cli調用c#dll 步驟如下:

[感謝緣生夢 朋友 補充:此樣例僅做開發人員調研使用,c++ clr會和部分c++編譯選項沖突,而且不支持部分mfc外部鏈接源。]

首先我們完成C# dll開發:

namespace Csharp  {      public class Class1      {          public string Name = string.Empty;           public Class1()          {              Name = "We can use C#!!";          }      }  }

編譯就可以獲得Csharp的dll。

其次對C++項目屬性的配置: 添加公共語言運行時支持 /clr (c++/cli)

C++/CLI怎么調用C#

下一步添加新引用中選擇我們***步中編譯的Csharp.dll

C++/CLI怎么調用C#

代碼中需要使用#usingusing namespace來進行對dll的調用。當分配內存時注意使用gcnew,需要gc來給其分配內存。托管對象需要使用^來進行聲明。

#include "stdafx.h"   #using "Csharp.dll"   using namespace Csharp;   int _tmain(int argc, _TCHAR* argv[])  {      Class1 ^a = gcnew Class1();      printf("%s/n", a->Name);            return 0;  }

運行后結果如下:

C++/CLI怎么調用C#

如此便可實現C++/CLI 調用 C#dll。

至此其他項目中非托管C++代碼便可以調用該c++dll來進行對托管c#dll的調用,該dll扮演wrapper的角色。

感謝各位的閱讀,以上就是“C++/CLI怎么調用C#”的內容了,經過本文的學習后,相信大家對C++/CLI怎么調用C#這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

张家界市| 林西县| 辽中县| 三都| 观塘区| 高雄市| 定安县| 五家渠市| 八宿县| 新民市| 韩城市| 连城县| 佛教| 连平县| 长白| 苏尼特右旗| 安岳县| 遂溪县| 洛浦县| 公主岭市| 高尔夫| 淮南市| 昭平县| 城市| 陕西省| 太谷县| 临清市| 昂仁县| 辽中县| 泉州市| 许昌市| 平顶山市| 梧州市| 奉节县| 新建县| 天台县| 云霄县| 云林县| 大悟县| 望城县| 千阳县|