C++調用Net類庫概述


背景

最近因為工作需要,需要在C++中調用Net類庫,所以特此總結一下,方便日后的使用。

整體環境為Visual Studio 2019 ,包括Net Framwork4.7和Core3.1,同時,文章也會對網上普遍文檔所缺乏的環境搭建,微軟MSDN的有關說明引用補充進來。

備注: 因為將demo代碼發布到了github上了,所以,可以保證改代碼和demo是可以運行調試的。

ps: 最近自己看網上的好多教程案例,各種調不通,給后面各位算總結了下資料吧。

常用方法

經過調查,發現主要存在如下幾種方法。

其中並沒有什么原創的東西,只是搬運工,將網上現有的知識文章匯總,重新實現,將部分原有文章未曾說明的部分,補充完善,對新人更加友好。如果有其它調用方法,歡迎和我溝通,我將補充進去。

優劣分析

Net類庫注冊為COM

調用方式為,將Net類庫開發為COM,注冊后,C++像調用其它COM組件一樣,調用Net類庫中的方法

優點:

  • 編寫代碼簡單,調用方便

缺點:

  • 需要注冊output,發布不夠簡單

C++/CLR支持調用Net類庫

C#常規編寫類,生產assembly,C++使用CLR編譯既可直接引用托管類。

優點:

  • 編寫代碼簡單,調用方便

缺點:

  • 需要了解C++ CLR語法(既不像C++,又不像C#,總之很奇怪)

C++通過非托管接口調用

C#常規編寫類,生產assembly,C++使用SDK提供的CLR非托管接口(CLRCreateInstance)進行調用。

優點:

  • 傳統C#編程,傳統C++編程

缺點:

  • 暫時還沒發現

參考

分享 N種方法使用C++調用C#.NET庫


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM