分享 N种方法使用C++调用C#.NET库
2021/11/4 14:10:14
本文主要是介绍分享 N种方法使用C++调用C#.NET库,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
分享 N种方法使用C++调用C#.NET库
加精 为了减少篇幅,此文不描述何种场景下需要使用C++调用C#/VB等托管代码,而直接给出三种常规方法和一些变通方法以供参考。常规方法1:COM
使用C#把托管类注册成COM,用regasm.exe注册output assembly,然后用C++像调用COM一样调用assembly里面的type。
优点:编写代码简单,调用方便
缺点:需要注册output,发布不够简单
参考:http://www.codeproject.com/KB/cs/ManagedCOM.aspx
常规方法2:CLR
C#常规编写类,生产assembly,C++使用CLR编译既可直接引用托管类。
优点:编写代码简单,调用方便
缺点:需要了解C++ CLR语法(既不像C++,又不像C#,总之很奇怪)
参考:http://www.codeproject.com/KB/mcpp/cppcliintro01.aspx ,http://msdn.microsoft.com/en-us/library/k8d11d4s.aspx
常规方法3(推荐):API
C#常规编写类,生产assembly,C++使用SDK提供的CLR非托管接口(CLRCreateInstance)进行调用。
优点:传统C#编程,传统C++编程
缺点:暂时还没发现
参考:http://nport.codeplex.com/SourceControl/changeset/view/45681#903468 ,http://msdn.microsoft.com/en-us/library/dd537633.aspx
变通方法:
1. 使用C#/VB包装现有托管类,注册成Windows服务,暴露SOAP web service。VC2005可以使用非托管代码添加引用Web service。
2. 使用C#/VB包装现有托管类,注册成Windows服务。C++利用Windows message和服务通讯。
3. 使用C#/VB包装现有托管类,注册成Windows服务。C++利用Windows共享内存和服务通讯。
其实利用双进程通讯的方法,可以演变出各种各样调用的思路。聪明的你可以充分发挥想象力,写出自己独有的调用模式。
这篇关于分享 N种方法使用C++调用C#.NET库的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-12-06使用Microsoft.Extensions.AI在.NET中生成嵌入向量
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#