![](/img/trans.png)
[英]How to call a C++ delegated function from C#, when C++ call C# functions?
[英]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加載到本機進程中。
將您的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.