stevenyao

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  22 随笔 :: 1 文章 :: 67 评论 :: 0 Trackbacks
工程大到一定程度,需要引入一个make工具了,CMake QMake都不错。
GUI库是必须放到DLL的,因为用的人可能会写很大的程序,本身就分多个dll,GUI封装里不可避免会有些全局变量,那么GUI库在DLL里才容易保证全局变量的唯一性。
另外GUI里还很要解决多堆问题,就是在一个堆里分配也要回到这个堆去释放,所以要避免模块堆和线程堆的问题,用DLL就可以拥有模块内存池。
GUI里会产生大量小对象,会有内存碎片化问题导致性能问题,内存池是十分必要的。
对了,可以去看看新版本的 WPS和YY语音,都是用Qt写的客户端。
我觉得没必要自己再造个轮子了,可以考虑用 Qt。 c++,跨平台,自带2d渲染引擎比GDI+快,丰富的基础类库和算法库,天生的Java Script脚本绑定。
如果比较下常用的几种 signal/slot实现的话,我觉得Qt的实现是最好的。

boost的signal/slot 有一个很严重的问题,就是会导致编译非常慢,你写个小测试程序是不会感觉到的,如果在几十个文件中使用的话,编译时间会成倍增长,即使用并行编译也是慢。都是模板搞的,boost的泛型用得太花哨了。

Qt则完全没有这个问题,而且执行效率也还可以。
个人认为 qmake的命令行更好用,尤其是项目多的时候,pro文件提供了更灵活的配置管理。
qmake -project
qmake -tp vc
这样开启dep的时候不会崩溃吗?
Qt的Qt Plugin不错,引出的是 QObject,可以动态加载和调用
中国是一房一妻制
re: 加快编译速度[未登录] 姚冬 2010-10-26 21:49
更简单便宜的方式是 换块固态硬盘
re: 加快编译速度[未登录] 姚冬 2010-10-26 21:49
有更便宜简单的方法,换块固态硬盘即可。
re: C++界面库的抉择[未登录] 姚冬 2010-07-31 18:48
@陈梓瀚(vczh)
只有在少数极端的情况下,你才需要你的GUI程序跨平台。你什么时候看见一个能用的C/C++写的带GUI软件,可以在不用改代码的情况下,两边都编译的。

严重同意
re: C++界面库的抉择[未登录] 姚冬 2010-07-31 18:46
我用我的愚蠢了解QT的特性,谢谢各位
re: C++界面库的抉择[未登录] 姚冬 2010-07-29 18:25
如果开发语言选择C++的话,QT 无疑是最佳选择。
性能一点都不差,尤其是 GraphicView系统,支持硬件加速哦

跨平台是没得说,PC平台通吃,被Nokia收购后 ,手机平台也占了一半了。

特别是 signal/slot 系统,非常完美的C++下的回调和事件通知架构,MFC的消息映射简直是杯具。

如果说QT有什么缺点,就是运行库有点大,静态链接也有 1.5Mb,动态则接近10M。但是如果你想写个中等规模的软件,比如 2-30万行源代码,那么就不是问题了。QT是更适合写大程序的。
这要看你的产品的定位了,如果是希望产品普及度高,那么显然选Symbian,因为Symbian的市场存量是最大的,Nokia即使再没落,未来几年Symbian仍然是销量最大的智能机。

如果你想做高端市场,那么显然是 iPhone,因为Symbian在高端市场的失败几乎是注定了的。
可以考虑 用 sigslot
http://sigslot.sourceforge.net/
就一个头文件,很轻量的 signal/slot实现
Qt4.7 的确会有QML,但是和楼主想做的还不太一样。
似乎更类似 Qt Graphic View,但是目前的Qt GraphicView还没有丰富的Widget,而且UI效果也一般,要实现好看的效果还有很多工作要做。

QT已经有点太庞大了,而且不打算支持D3D(被Nokia收购的并发症)了,如果楼主有兴趣造福业界,我是很支持的。

前端有丰富的Widget,华丽的Effect,后端有硬件加速的图形系统,XML的Layout,如果都能实现还是很完美的。

其实如果 IPhone/mac不是用变态的Objective-c的话,就是我心中接近完美的那个轮子了。
@Jim

你用的是Windows 64位吧?那么应该运行 B\win64\vc.bat