请大家讨论一下C#应用与C++应用交互数据的问题。

康斯坦汀 2011-12-16 01:13:15
一个2D/3D图性类的项目,低层引擎是C++写的,现在需要C#应用来调用,两者都是自己开发的,有源码。
两者有大量的数据需要通讯,比如C#会操作大量图形移动,C++提供绘制的支持,也就是说需要实时的
大量数据交互,请大伙讨论一下以下问题:

1)两者怎样交互最有效率?
2)两者怎样交互最为简单方便?


...全文
132 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgc2008 2011-12-20
  • 打赏
  • 举报
回复
C#创建窗体.并在上面放一个pic控件.将c++封装成dll.需要绘图的时候,就将pic的窗口句柄传给dll...目前我用的是这个方法.这个开发简单,但是后期应用不是很方便. 要不就将C++封装成CLT。开发难度有点麻烦,但是用熟悉了,很方便的
sdl2005lyx 2011-12-20
  • 打赏
  • 举报
回复
"对COM还算熟悉,写COM没问题,但COM适合传递大量数据么?适合各种复杂的类型么?
关键是海量数据,一个3D建模的数据可能是GB级别的。所以上面说的方法似乎都不行。"

你可以写一个ICollection集合接口,进行大批量数据交互!
对于复杂类型,把它做成实体类,在IDL导出,在C#直接使用!
donkey301 2011-12-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 r3000 的回复:]

引用 3 楼 sdl2005lyx 的回复:

如果对COM比较熟悉,建议把C++的写成COM组件,这样net这边使用非常方便,
不熟悉的话,就用平台调用,互操作方式,就是会麻烦一些,要做大量的类型和接口映射定义。。。


对COM还算熟悉,写COM没问题,但COM适合传递大量数据么?适合各种复杂的类型么?
关键是海量数据,一个3D建模的数据可能是GB级别的。所以上面说的方法似乎都……
[/Quote]
3D数据是GB的没错,但交互数据不应该是GB量级的,譬如C#会操作大量图形移动时只要告诉C++平移的x,y,z就行了,相当于C++中有个接口Translate(double x, double y, double z)。如果交互数据需要是GB量级的,那就不要用C#做界面了,直接用MFC吧。
康斯坦汀 2011-12-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sdl2005lyx 的回复:]

如果对COM比较熟悉,建议把C++的写成COM组件,这样net这边使用非常方便,
不熟悉的话,就用平台调用,互操作方式,就是会麻烦一些,要做大量的类型和接口映射定义。。。
[/Quote]

对COM还算熟悉,写COM没问题,但COM适合传递大量数据么?适合各种复杂的类型么?
关键是海量数据,一个3D建模的数据可能是GB级别的。所以上面说的方法似乎都不行。
sdl2005lyx 2011-12-16
  • 打赏
  • 举报
回复
如果对COM比较熟悉,建议把C++的写成COM组件,这样net这边使用非常方便,
不熟悉的话,就用平台调用,互操作方式,就是会麻烦一些,要做大量的类型和接口映射定义。。。
donkey301 2011-12-16
  • 打赏
  • 举报
回复
可以用COM组件,Pro/E,CATIA,UG等等的三维建模工具都是用COM组件和其它程序做交互的。

110,567

社区成员

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

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

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