现在用C++和C#共同开发还合适吗?

Maverix3 2013-03-18 08:22:57
自己想开始一个新项目,主要进行大数据集处理的,考虑到性能,我想用C#和WPF编写GUI和I/O操作,用C++编写DLL负责实际的数据处理。这种模式现在还合适吗?
还有,如果我用C++编写DLL供C#使用,我是只要按做好接口就行了呢,还是最好按照COM规范做接口?
...全文
429 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
许嵩奇 2013-06-12
  • 打赏
  • 举报
回复
引用 15 楼 Trent1985 的回复:
[quote=引用 14 楼 mjjackey 的回复:] 引用 8 楼 Trent1985 的回复:“C做底层,C++中间层,C#上层”这种模式很多大型软件公司都在用,由于C#的界面性好,交互性强,所以做上层非常合适,之所以不能做核心代码开发,主要是因为C#的代码保护太难!楼主放心使用这种模式吧! 不是因为C#效率低吗? 楼主:为什么不合适啊,这种方式组合不是很经典的吗。
都说C#效率低,可是你们测试过吗?其实C#跟C++的效率差不多,在某些方面效率还要高出C++的!C++能做的C#都能做,大型3D网游也不在话下,不要说他不能做3D网游,到国外网站上看下,多了去了,C#唯一的缺点就是不安全,代码保护麻烦而已!!!如果真不如C++,微软还开发 它干嘛呢?微软之所以开发C#,就是为了跟JAVA抗衡,为什么不用C++跟它抗衡呢?因为C++实力不够!!!兄弟姐妹们,仔细想一下吧!!![/quote] 是这样么0.o,为什么说C++无法对抗java呢?
nice0202 2013-05-22
  • 打赏
  • 举报
回复
那些说C#效率和C++差不多的,真的测试过?不说别的,就说所谓的动态垃圾搜集、托管代码相比机器码就是明显降低效率的呀。说起算法来,两者肯定都一样的,不是说C的算法就高明,但是说起内存直接组织、寄存器优化这些涉及到底层的C#都是没有办法做到的(不要说二次编译那个不是优化),所以C++编译的程序可以一遍又一遍的从机器码级、机器体系结构一级优化。C/C++最大的优势就是指针和内存直接操作能力,使程序员可以近似达到汇编语言级的对计算机的控制能力,从而可以从源码级就考虑安排空间换时间等策略,这些都是语言特点决定的。
Trent1985 2013-03-21
  • 打赏
  • 举报
回复
引用 14 楼 mjjackey 的回复:
引用 8 楼 Trent1985 的回复:“C做底层,C++中间层,C#上层”这种模式很多大型软件公司都在用,由于C#的界面性好,交互性强,所以做上层非常合适,之所以不能做核心代码开发,主要是因为C#的代码保护太难!楼主放心使用这种模式吧! 不是因为C#效率低吗? 楼主:为什么不合适啊,这种方式组合不是很经典的吗。
都说C#效率低,可是你们测试过吗?其实C#跟C++的效率差不多,在某些方面效率还要高出C++的!C++能做的C#都能做,大型3D网游也不在话下,不要说他不能做3D网游,到国外网站上看下,多了去了,C#唯一的缺点就是不安全,代码保护麻烦而已!!!如果真不如C++,微软还开发 它干嘛呢?微软之所以开发C#,就是为了跟JAVA抗衡,为什么不用C++跟它抗衡呢?因为C++实力不够!!!兄弟姐妹们,仔细想一下吧!!!
Frog1228 2013-03-21
  • 打赏
  • 举报
回复
引用 8 楼 Trent1985 的回复:
“C做底层,C++中间层,C#上层”这种模式很多大型软件公司都在用,由于C#的界面性好,交互性强,所以做上层非常合适,之所以不能做核心代码开发,主要是因为C#的代码保护太难!楼主放心使用这种模式吧!
不是因为C#效率低吗? 楼主:为什么不合适啊,这种方式组合不是很经典的吗。
Maverix3 2013-03-21
  • 打赏
  • 举报
回复
引用 3 楼 caozhy 的回复:
你可以考虑使用C++/CLI,这样兼顾了性能,同时也能和C#代码最好的交互。
谢谢!看了你的回复我就去研究了一下c++/cli,发现真的是非常方便,不需要再从c#里p/invoke了。
引用 8 楼 Trent1985 的回复:
“C做底层,C++中间层,C#上层”这种模式很多大型软件公司都在用,由于C#的界面性好,交互性强,所以做上层非常合适,之所以不能做核心代码开发,主要是因为C#的代码保护太难!楼主放心使用这种模式吧!
谢谢!
引用 9 楼 sbwwkmyd 的回复:
引用 7 楼 Maverix3 的回复:大数据集也一样吗?可我看到的以往的报告,都有人遇到c++上跑的欢快的东西到了c#上慢的不可忍受。之前也是有开发者在wp平台请求开放c++因为c#的效率太不可忍受了。 我相信同一个人写的C++同样慢的不可忍受。
可实际测试的结果并不认同。简单的一个循环求幂的运算,托管代码和非托管代码同样release编译,托管代码的效率低的很明显。
huwei001982 2013-03-20
  • 打赏
  • 举报
回复
非常合适, 这是一对经典的组合
showjim 2013-03-19
  • 打赏
  • 举报
回复
引用 7 楼 Maverix3 的回复:
大数据集也一样吗?可我看到的以往的报告,都有人遇到c++上跑的欢快的东西到了c#上慢的不可忍受。之前也是有开发者在wp平台请求开放c++因为c#的效率太不可忍受了。
我相信同一个人写的C++同样慢的不可忍受。
Trent1985 2013-03-19
  • 打赏
  • 举报
回复
“C做底层,C++中间层,C#上层”这种模式很多大型软件公司都在用,由于C#的界面性好,交互性强,所以做上层非常合适,之所以不能做核心代码开发,主要是因为C#的代码保护太难!楼主放心使用这种模式吧!
Maverix3 2013-03-19
  • 打赏
  • 举报
回复
引用 5 楼 sbwwkmyd 的回复:
C#数据处理的性能并不比C++差多少,真没必要用C++
大数据集也一样吗?可我看到的以往的报告,都有人遇到c++上跑的欢快的东西到了c#上慢的不可忍受。之前也是有开发者在wp平台请求开放c++因为c#的效率太不可忍受了。
linrachel 2013-03-19
  • 打赏
  • 举报
回复
大招unsafe
showjim 2013-03-19
  • 打赏
  • 举报
回复
C#数据处理的性能并不比C++差多少,真没必要用C++
keith_cheung 2013-03-19
  • 打赏
  • 举报
回复
怕什么,照用混合!
Red_angelX 2013-03-19
  • 打赏
  • 举报
回复
可行,不一定要用com模式 而且底层用c/c++优化的余地很大
cheng2005 2013-03-18
  • 打赏
  • 举报
回复
混编是可以的,但是最好是封装的好一点,不然还不如纯C#好。最好是C++那层可以独立拆出来将来复用,不然意义不大。
threenewbee 2013-03-18
  • 打赏
  • 举报
回复
你可以考虑使用C++/CLI,这样兼顾了性能,同时也能和C#代码最好的交互。
Maverix3 2013-03-18
  • 打赏
  • 举报
回复
引用 1 楼 bdmh 的回复:
可以用C写一些dll给C#调用
那从效率,安全性还有维护性出发,我有必要按COM模式写吗?还是只要给出个接口就行了?因为dll里边必然用到class。
bdmh 2013-03-18
  • 打赏
  • 举报
回复
可以用C写一些dll给C#调用

110,552

社区成员

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

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

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