您好,登錄后才能下訂單哦!
這篇文章主要講解了“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)
下一步添加新引用中選擇我們***步中編譯的Csharp.dll
代碼中需要使用#using和using 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#dll。
至此其他項目中非托管C++代碼便可以調用該c++dll來進行對托管c#dll的調用,該dll扮演wrapper的角色。
感謝各位的閱讀,以上就是“C++/CLI怎么調用C#”的內容了,經過本文的學習后,相信大家對C++/CLI怎么調用C#這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。