C#调用C++DLL采用何种方案好

freefalcon 2010-03-15 10:50:25
要用C++开发SDK供第三方使用,除了首先满足C++调用外,第三方还可能采用C#等高级语言调用

目前有两种方案:
1. 采用COM接口,因为COM有着较好的跨语言特性
2. 采用类似于Windows API的纯C接口

这里请有相关经验的朋友讲讲,上述两种方案中哪种方案在C#里调用起来方便些,谢谢。
...全文
132 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ztenv 2010-03-15
  • 打赏
  • 举报
回复
只要不和类有关系,就没有问题;
freefalcon 2010-03-15
  • 打赏
  • 举报
回复
目前的C++接口中用到了回调接口,如果改成C接口的话就是函数指针,这在C#里调用有问题吗?
ztenv 2010-03-15
  • 打赏
  • 举报
回复
[Quote=引用楼主 freefalcon 的回复:]
要用C++开发SDK供第三方使用,除了首先满足C++调用外,第三方还可能采用C#等高级语言调用

目前有两种方案:
1. 采用COM接口,因为COM有着较好的跨语言特性
2. 采用类似于Windows API的纯C接口

这里请有相关经验的朋友讲讲,上述两种方案中哪种方案在C#里调用起来方便些,谢谢。
[/Quote]

1、写成com跨不了平台的,还是别写了,再如楼上的所讲
2、个人感觉如果C/C++能访问你的接品了,就没必要再封装了,如果第三方想自己开发,让他们用C++再封装一层给C#调用
cpp2017 2010-03-15
  • 打赏
  • 举报
回复
第二种.

使用COM,需要注册,如果多个程序共用,被别的程序卸载时反注册了,会影响到你现在的程序。
使用普通dll,不受这个影响。也不用注册。将dll放在当前目录下就行,比较干净。

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧