社区
C#
帖子详情
C#调用C++DLL采用何种方案好
freefalcon
2010-03-15 10:50:25
要用C++开发SDK供第三方使用,除了首先满足C++调用外,第三方还可能采用C#等高级语言调用
目前有两种方案:
1. 采用COM接口,因为COM有着较好的跨语言特性
2. 采用类似于Windows API的纯C接口
这里请有相关经验的朋友讲讲,上述两种方案中哪种方案在C#里调用起来方便些,谢谢。
...全文
192
4
打赏
收藏
C#调用C++DLL采用何种方案好
要用C++开发SDK供第三方使用,除了首先满足C++调用外,第三方还可能采用C#等高级语言调用 目前有两种方案: 1. 采用COM接口,因为COM有着较好的跨语言特性 2. 采用类似于Windows API的纯C接口 这里请有相关经验的朋友讲讲,上述两种方案中哪种方案在C#里调用起来方便些,谢谢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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放在当前目录下就行,比较干净。
C#
调用
C++
的
dll
方法
本文详细介绍了两种
C#
调用
C++
DLL
的方法:托管
C++
DLL
库方式和非托管
C++
DLL
库。在托管方式下,创建
C++
项目并设置支持公共语言运行时,生成
DLL
后在
C#
中添加引用并
调用
。非托管方式则需使用`extern C`确保函数导出名正确,
C#
通过`
Dll
Import`
调用
导出函数。文中还涉及了参数传递、回调函数等实际应用中的问题。
C#
调用
C++
DLL
传递结构体数组的终极解决
方案
在
C#
调用
C++
DLL
过程中,遇到结构体、结构体数组或结构体指针的传递问题。由于
C#
与
C++
字节对齐规则不同,直接传递会导致异常或数据不正确。解决
方案
包括调整
C++
结构体的字节对齐,使用Marshaling在
C#
中分配非托管内存,或者通过创建等大小的一维字节数组进行数据交互。通过这些方法,成功解决了
C#
与
C++
DLL
之间的结构体数组通信问题。
C#
调用
dll
文件
本文介绍了使用
C++
创建
DLL
文件及
C#
调用
该文件的方法。先阐述用
C++
创建
DLL
文件的步骤,接着说明
C#
调用
DLL
非托管代码的方法及相关注意事项,最后给出
C#
调用
DLL
文件的实例,包括两种引入方式及运行结果。
C#
调用
C++
dll
教程
本文介绍了如何在
C#
中创建
C++
DLL
项目,提供创建步骤和代码示例,并详细讲解了
C#
程序员如何
调用
C++
DLL
,涉及数据类型对应、P/Invoke、内存管理等内容。
C#
项目中
调用
C++
生成的
Dll
入门教程
本文提供了一个详细的教程,指导如何在
C#
项目中
调用
由
C++
生成的
Dll
。首先介绍了
C++
动态库
Dll
_Cpp.
dll
、静态库
Dll
_Cpp.lib和头文件
Dll
_Cpp.h。然后,详细阐述了创建CLR项目
Dll
_CSharp的步骤,包括将
C++
文件导入项目,修改头文件,并添加托管函数代码。接着,生成并测试了
Dll
_CSharp.
dll
,通过创建
C#
控制台项目test
Dll
_CSharp,将所需
dll
和lib文件复制到项目目录,引用
Dll
_CSharp.
dll
,并编写
调用
代码。注意在实际使用中可能涉及类型转换问题。
C#
111,129
社区成员
642,535
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章