首先感谢CSDN, 在我刚刚在CSDN Blog落户一个月之际,就给了我一个惊喜,让我晋升为“C++专家”了。我很高兴,因为这意味着可以有更多的朋友了解WINX,关注WINX了。
这几天陆陆续续有些网友问我的问题,考虑到可能其他朋友有类似的情形,我这里一并说明一下:
1)我应该到哪里下载WINX?它支持哪些编译器?如何编译?
- 您可以到Sourceforge上下载WINX。下面是一些链接:
http://sourceforge.net/projects/winx/
- Sourceforge上WINX的首页(Summary)。
http://winx.sourceforge.net/
- Sourceforge为WINX提供的Web空间,我重定向到了http://winxcn.com。
您也可以从Google Code上下载WINX:
http://code.google.com/p/winx/
- Google Code上的WINX。
- 目前WINX主要分为3个包,您可以根据自己的需要,下载一部分或全部:
1) winx-xxxx.zip
- 必需组件。这里xxxx是版本号,请下载最新版本的winx。
2) winsdk.zip
- 如果您使用VC6.0,并且希望用WINX的所有功能,那么您需要它。
3) opencv.zip
- 如果您是OpenCV的开发者,希望WINX和OpenCV一起工作,那么您需要它。
- WINX尽量采用纯头文件的形式,故此理论上对编译器没有太大的要求。
如果你遇到任何问题,可以和我联系。目前已经测试确认可以工作的有:- Visual C++ 6.0
- Visual C++ 2003
- Visual C++ 2005
- WINX对你下载后的各个包目录组织是有要求的,详细看这里。
2)WINX跨平台吗?
- WINX目前不支持Unix/Linux族的平台。它支持Windows家族(Win98以上),理论上它支持WinCE,只是我还没有具体进行过测试。
- WINX的发展方向是嵌入式系统等对性能(时间/空间)要求较高的系统。故此跨平台是它要走的路。
3)WINX有什么特色?
我对WINX的概括是:MOST SIMPLE BUT EFFECTIVE(简单而高效)。展开来讲,它有以下特点:
- 卓越的消息分派机制。正是因为有这个核心支撑,使得WINX成为迄今为止最高效的界面库。
- 简单易用(SIMPLE)是第一目标,尽量使可视化(WYSIWYG)界面开发成为可能。
- 开放。WINX代码是可以和WTL、MFC等界面库的代码共存的。
- 兼容。尽管有更简洁的方法,但WINX还是提供了MFC程序员熟悉的调用界面,并尽量使得MFC代码可以轻松移植到WINX下。
- 不重复制造轮子。在没有一个卓越的解决方案以区别于现有系统之前,先沿用现有的。WINX建立于WTL之上,重用了多数的WTL组件。
4)WINX为什么不采用Signal/Slot进行消息分派?为什么不借鉴AOP的思想?
- 首先,Signal/Slot是AOP中常
见的手法,它是好东西,我个人不排斥它。 - 不过,Signal/Slot始终是AOP中重量级的手法。我说的重量级,不是它重要,而是它的开销大。所以,WINX必须采用其他的选择——更为轻量级的手法。
- 但是你仍然可以将Signal/Slot应用于WINX的消息分派,比如说应用于部分窗口。以后你将看到,WINX它支持AOP,支持Signal/Slot。只是它不用于消息分派,或者说在消息分派中它是一个可选组件。
5)你开发WINX的目的是什么?想到盈利吗?
- 开发WINX是我的个人兴趣。我从98年开始在DOS下写第一个界面库(图形界面的,当时还没有,不过也可能是我孤陋寡闻),那是一段难忘的经历。2000年开发了另一个界面库,并以此作为主题写了毕业论文。这个库称为SW系统,它基于Windows平台。SW系统还是很传统,有很多Turbo Vision(我接触的第一个界面库,它是字符界面的,TC++ 3.0的开发环境就是Turbo Vision所开发)、MFC的影子。WINX则是今年1月份开始写,最初是为了一个公司内部的程序作界面而写。
- 做库很有挑战,做界面库更加如此。所以对我来说这是在做一件很有意义的事情。从盈利角度来讲,我个人认为库(Library)很难找到模式来赚钱,所以基本上这个问题可以搁在一边。
未完,待补充...