簡體   English   中英

如何從C ++調用C#

[英]how to call C# from c++

我想知道從C ++(本機而非C ++ CLI)代碼中調用ac#類方法的方式是什么? 需要簡單而優雅的方式

您可以使用所謂的“ CLR Hosting ”將任何CLR程序集(C#,VB.NET,F#等)嵌入本機C ++程序中。 這就是本機程序(例如SQL Server)支持.NET代碼擴展的方式。 例如SQL Server中的SQL CLR

您可以使用.NET 2.0的CorBindToRuntimeEx()和.NET 4中的CLRCreateInstance()將CLR加載到本機進程中。

可以在MSDN或Jeff Richter的書CLR中通過C#找到詳細信息。

將您的C#程序集變成一個可見的COM並使用COM接口。 據我所知,這是使其與自制IPC一起工作的唯一方法。 問題來自.NET環境,在該環境下必須運行.NET程序集,而C ++必須在其本機C ++環境下運行。

唯一的通信方式是IPC機制(套接字等)或使用COM,因為進程必須“分離”。

這是基於COM的解決方案的教程:

Sasha Goldshtein就是這樣的人:

再次有幾種方法可以做到這一點:1.反向P /調用(必須從作為回調傳遞的.NET委托開始,因此,只有在“ .NET”代碼中開始“操作”時,這才是好方法); 2. COM互操作(每個.NET類也可以是帶有或不帶有顯式接口的COM對象); 3. C ++ / CLI包裝器類。

參見http://blogs.microsoft.co.il/blogs/sasha/archive/2008/02/16/net-to-c-bridge.aspx

也可以看看 :
http://www.gregcons.com/KateBlog/CallingManagedCodeFromNativeCode.aspx

最簡單的方法是使用C ++ / CLI。 如果您不能在代碼中使用它,請編寫一個包裝dll並調用該dll。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM