近来无事想写一个小程序,又不想花太多时间在UI上;就想起了一直关注的wxWidgets(以前叫wxWindows,据说是因为微软施压才改的名)。选用他的理由有三:
1. 只会C。。。
2. 不想因为界面设计而花太多时间
3.
* wxWidgets已经有了像wxGlade这样的东东,画个简单的界面什么的足够了
4. 我的服务器已经都转换到了Linux;而桌面电脑随着时间的推移已经逐步的将常用的程序切换成了跨Windows/Linux的版本。所以学习一个跨平台的UI比较能够做到知识的保值
5. wxWidgets中的wxString类提供了统一的一个字符串操作界面。一些常用的文本处理函数不用再创建了;这个我喜欢
6. 开源、免费!
下一步就是选择IDE
主要焦点在MinGW Developer Studio和Code::Blocks Studio这两个跨平台(都使用的是wxWidgets UI库)的免费软件之间:
1. MinGW Developer Studio使用感觉还不错。有预编译的wxWidgets库;入门方便(编译wxWidgets库遇到的问题多多,后面慢慢讲)
2. Code::Blocks Studio提供插件接口而且最重要的是更新快。这方面MinGW Developer Studio就差多了,活跃的开发团队是开源项目发展的关键!
当然差别还有很多。我是菜菜鸟看得到的就这些。。。
安装Code::Blocks Studio
Code::Blocks Studio现在发布的是RC2(还没有正式版)。但RC2问题多多(我发现的就有对Unicode编译的支持问题);不过有Nightly Builds可以解决。我的解决步骤是:
1. 先下载并安装RC2整合MingW的版本,这样也就不用再去下载MingW(MingW下载包太多了,安装头痛)
2. 下载Nightly Builds(现在登陆C::B这个论坛要注册,前几天都还可以匿名的)中的
3.
1. Unicode wxWidget动态支持库(新版的C::B已经使用Unicodede发布)
2. C::B的Nightly Builds,我下的是2006/1/20号的rev1823
4. 将两个包中文文件解压覆盖到C:\Program Files\CodeBlocks
安装wxWdigets
1. 我在wxWidgets官方下载页面上下载的wxMSW v2.6.2 的ZIP版
2. 解到D:\(安装完成后的路径为:D:\wxWidgets-2.6.2,之后的设置都用的是这个路径)
编译wxWdigets(支持ODBC)
1. 首先编辑D:\wxWidgets-2.6.2\include\wx\msw\setup.h以便编译后的动/静态库文件支持ODBC(为了让编译出来的库支持ODBC,我至少编译了4次才找到原来还要在这儿修改。虽然wxWidgets的手册上写要修改setup.h不过没有具体说是那个目录下的。。。吐血)。修改内容如下:
2.
* 将文件中的#define wxUSE_ODBC 0修改为#define wxUSE_ODBC 1
3. 然后我在D:\wxWidgets-2.6.2\build\msw下创建了一个envset.bat文件来设置编译需要的环境参数。
4.
1. 内容如下
set PATH=%PATH%;C:\Program Files\CodeBlocks\bin;C:\Program Files\CodeBlocks\mingw32\bin;
set LIBRARY_PATH=C:\Program Files\CodeBlocks\lib
set C_INCLUDE_PATH=C:\Program Files\CodeBlocks\include
set CPLUS_INCLUDE_PATH=C:\Program Files\CodeBlocks\include;D:\wxWidgets-2.6.2\include;D:\wxWidgets-2.6.2\contrib\include;
2. 其中C:\Program Files\CodeBlocks是我的C::B的安装路径
5. 同时修改D:\wxWidgets-2.6.2\build\msw\config.gcc
6.
* 将USE_ODBC = 0修改为USE_ODBC = 1
7. 进入DOS命令行
8. 切换工作路径至D:\wxWidgets-2.6.2\build\msw
9. 运行envset.net
10. 执行清理命令
mingw32-make -f makefile.gcc USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=debug UNICODE=1 clean
11.
* 其中
*
1. SHARED=1表示生成的动态链接库DLL,0就是静态链接库
2. MONOLITHIC=1表示生成单一的库文件,0表示生成多个按模块分割的库文件
3. BUILD=debug表示生成带Debug信息的版本方便调试,release是发布版
4. UNICODE=1表示使用unicode编码
12. 执行编译命令
mingw32-make -f makefile.gcc USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=debug UNICODE=1 VENDOR=cb
13. 看看电视,泡壶茶。编译的时间可不短;-)
整合C::B和wxWidgets
1. 运行C::B。程序会提示你填写wxWidgets的安装目录
2.
* codeblock-wx-global-var-set.png
3. 然后使用新建向导创建一个Using UNICODE wxWidgets DLL的wxWidgets Appliction就可以开始了
4.
codeblock-wx-create-project.png
有点晚了,关于C::B中的wxWidgets项目配置方面的改天再写。。。