Ale*_*ski 11
您可以使用所谓的" CLR Hosting " 在本机C++程序中嵌入任何CLR程序集(C#,VB.NET,F#,...).这就是本机程序(如SQL Server)支持.NET代码扩展的方式.例如SQL Server中的SQL CLR.
您将CLR加载到使用CorBindToRuntimeEx().NET 2.0和CLRCreateInstance().NET 4 的本机进程中.
可以在MSDN上找到详细信息,或者通过C#在Jeff Richter的书CLR中找到.
jde*_*aan 10
将您的C#程序集转换为COM可见的程序集并使用COM接口.据我所知,这是使它在自制IPC旁边工作的唯一方法.问题来自.NET环境,在该环境下.NET程序集必须运行,C++在其本机C++环境下运行.
通信的唯一方式是IPC机制(套接字,......)或使用COM,因为进程必须"解耦".
这是基于COM的解决方案的教程:
Sasha Goldshtein是这个人的人:
还有几种方法可以做到这一点:1.反向P/Invoke(必须从作为回调传递的.NET委托开始,所以这只有在你的.NET代码中开始"动作"时才有用); 2. COM interop(每个.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