纯属瞎折腾,呵呵
1. 编译wxWidgets
很简单,nmake -f Makefile.vc BUILD=debug,自己改一下config.vc。推荐将wxWidgets编译为静态库,编译一个UNICODE DEBUG版本,一个UNICODE RELEASE版本。
2. 配置VC2008 Express以使用wxWidgets
添加库路径:(在Tools-Options-Projects and Solutions-VC++ Directory)
%WXMSW%代表wxWidgets解压出来的根目录
include: %WXMSW%\include; %WXMSW%\include\msvc
lib: %WXMSW%\lib\vc_lib
然后打开%WXMSW%\include\msvc\wx\setup.h:
#ifdef _MSC_VER
#pragma comment(lib,"comctl32.lib")
#pragma comment(lib,"rpcrt4")
----------------------
添加上面两行,因为wxWidgets总是需要这两个库。同样可以加入ws2_32.lib,如果用wxSocket的话会用到。
3. 新建项目
环境已经配置好了,可以新建一个空项目来使用wxWidgets了。
选择Win32 Application,后面选择empty project。这样就建立了一个空的项目,可以写个简单的wxWidgets程序试一下。非常简单,对吧?
============================
注意:
1. 针对VC2008 Express,wxWidgets使用静态库。
2. wxWidgets程序需要一个rc资源文件,里面有这么两行:
#define wxUSE_NO_MANIFEST 1 //这个必须有,manifest资源VC自动生成
#include
3. 使用预编译头文件可以显著加快编译速度。可以用向导生成的预编译头文件,也可以手动添加。如果使用向导生成的,新建项目时不选empty project,把stdafx.h里不需要的内容去掉,加入
#include
!!!把#define WIN32_LEAN_AND_MEAN去掉。我开始以为留着无所谓,在编译一个使用了socket的程序时,include了后老提示这样的错误:
1>e:\source\wxmsw-2.8.8\include\wx\msw\gsockmsw.h(93) : error C2146: syntax error : missing ';' before identifier 'm_fd'
1>e:\source\wxmsw-2.8.8\include\wx\msw\gsockmsw.h(93) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>e:\source\wxmsw-2.8.8\include\wx\msw\gsockmsw.h(93) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>e:\source\wxmsw-2.8.8\include\wx\msw\gsockmsw.h(104) : error C2079: 'GSocket::m_timeout' uses undefined struct 'timeval'
而编译wxWidgets自带的sockets例子却没有问题,查了半天才发现,原来是WIN32_LEAN_AND_MEAN惹的祸。
手工添加预编译头支持:
-
添加stdafx.h, stdafx.cpp
-
project属性中设置 use pch(/Yu)
-
stdafx.cpp属性中设置create pch(/Yc)
through file 都是stdafx.h
如果还是觉得太麻烦的话,可以修改VC的Project Wizard,来生成你想要的初始项目。这里有个我修改的,只能凑合一下,你也可以修改template目录改成自己想要的
![](http://control.cublog.cn/fileicon/zip.gif) |
文件: |
wxWizard.zip |
大小: |
56KB |
下载: |
下载 | |
阅读(2323) | 评论(0) | 转发(0) |