问题描述
- C#做界面,调用C++,谁可以给一个教程?
-
最好人来教,我就做一个简单的东西,C++函数都写好了,就是不会写界面,以前没学过,加上时间比较紧。
可以给报酬,希望哪位大神可以教我
解决方案
http://blog.csdn.net/biyusr/article/details/7301288
解决方案二:
C++与C#界面编程比较
C++
优点:
1. 容易调用底层代码,运行效率高。主要用于操作系统,设备驱动程序,视频游戏等领域。如果用于编写界面程序,运行速度将很快。
2. 可直接调用C语言代码,在编写界面程序时,能够直接调用系统API,比较适合跟系统底层打交道多的程序。如杀毒程序等。
3. 界面编程可使用MFC,WTL等,MFC使用方便,类库繁多,能够很简单的写出正常界面的程序。WTL为轻量级界面库,代码更加简洁,但WTL不受微软官方维护。
4. MFC的对系统的封装不够彻底,例如选择文件框,只有选择文件的类,并不提供选择文件夹的类,许多功能需要自己实现,开发较慢。
5. MFC中有各种基本的Windows控件,但是操作或修改都需要自己画控件了。
6. 语言特性:
宽松类型检查,支持宏;但建议用Const来定义常量,具有类型安全检查机制
类可多继承,但并不推荐多继承
C++支持模板类
需要手动管理内存,指针使用方便,效率
单层命名空间
变量不初始化也能使用
支持Try/Catch异常处理
支持函数指针,无类型安全检查
缺点:
1. 没有数组边界检查,容易溢出。指针操作容易出错。内存管理需要耗费大量精力。
2. 界面画图需要调用系统API,有些Windows平台API不同,可能导致画出界面的效果出问题。
3. 美化界面难度很高,使用商业控件的价格不菲。
4. C++为C的超集,为了兼容C语言,使得程序发展得非常复杂,造成开发周期长,成本高
5. 界面编程不是C++的强项,用C++编写界面程序需要一砖一瓦全部自己搭建,当然自由度很高,但是代码量更多,容易出Bug,耗时间。
C#
优点:
1. 集成大量类库,开发效率高,开发周期短。主要用于开发Windows应用软件,企业管理,网络应用等领域。
2. 可利用除界面代码以外的C++代码。但是需要通过C++CLI, COM组件,PInvoke等形式。
3. .Net内封装了大量网络应用,数据库方面的类库,直接调用非常方便,支持串口,TCP编程等。
4. 界面编程可使用Winform,WPF。其中WPF属于新一代界面引擎,无需通过GDI+画图, 直接与显卡DirectX交互,渲染速度很快。WPF是微软专门为界面编程打造的类库。
5. WPF中有更丰富的Windows控件,修改也比较方便。有些直接改Xaml的样式即可。
6. 语言特性:
强制类型检查,所有类型继承至Object类型;不支持宏;
类单继承,接口多继承
C#支持泛型
C#支持动态语言特性
自动内存回收管理
多层命名空间
变量初始化后才能使用
自动检查数组边界
支持Try/Catch/Final异常处理
“委托”可模拟函数指针,是一个对象,支持类型安全检查。
缺点:
1. 需要在Windows系统上安装.Net运行库,.Net 4.0 大概40MB左右。只与.Net运行库相关,与Windows平台无关,Winxp,win7,win2008运行无区别。
2. 需要解析成中间代码再被解释器运行,运行速度较慢。
3. 调用系统API,需使用PInvoke间接调用,需要先声明为PInvoke接口,不能直接调用。
更多:
1. C++的代码错误容易引起安全问题,造成内存泄漏,运行出错。C#的代码错误容易引起性能问题。如果追求性能,用C++,如果追求安全,用C#。
2. C++的开发难度高,开发周期较长,但是运行效率高;C#的开发难度低,开发效率高,运行效率低;
3. C++注重实现功能,只要时间充裕,可以实现非常强大的功能;C#更加注重软件工程的应用,各种设计模式的使用,面向对象,是现代软件工程的思想体现。适合企业内高效的开发模式;
4. C++的MFC界面编程难度较高,美化界面需要大量代码的支持。C#的WPF的界面编程很简单,界面代码与程序代码分开,界面可使用可视化设计程序,如Expression Blend设计。
5. C++对串口,网络TCP,数据库方便的编程都支持,但是没有现成的完整类库调用,需要大量代码支持。 C#中这些都已经有类库,直接调用即可。代码量少很多。
6. C++打造界面像使用画笔画图,想怎么画就怎么画,结果取决于画家的功力;C#打造界面像使用Photoshop画图,不会画画的人也能画出一些精美图片来。
解决方案三:
界面你要用mfc写啊!
解决方案四:
C# 调用 C++
时间: 2024-09-27 22:30:01