wxWidgets 是一个开源的跨平台 GUI 框架,使用起来和 MFC 有些类似。目前的最新版是 2.8.9。wxWidgets 可以和 Microsoft Visual C++ 2008 Express Edition 很好地结合在一起使用。
第一步:获得源代码
从 wxWidgets 官方网站可以下载得到源代码压缩包,解压以后的文件夹当中有编译时需要的源代码,编译配置等文件。有了这些就可以开始编译源代码了。
第二步:编译之前的设置
假设 wxWidgets 解压后的目录为 %WXPATH%,编译时的一些选项可以在 %WXPATH%\include\wx\msw\setup.h 中进行修改,各项的作用在代码注释中有说明,比如:
引用
#define wxUSE_DEBUG_CONTEXT 1
#define wxUSE_MEMORY_TRACING 1
#define wxUSE_GLOBAL_MEMORY_OPERATORS 1
#define wxUSE_DEBUG_NEW_ALWAYS 1
这样可以打开 wxWidgets 内建的内存泄露检测功能,对各项设置不了解的话就保持默认吧。wxWidgets 在 %WXPATH%\build\msw 下提供了针对各种编译器的配置文件,对应 VC 的配置文件是 config.vc。下面是其中的一些比较重要的选项:
# What type of library to build? [0,1] -- 生成库的类型,0为静态库,1为动态库
SHARED = 0
# Compile Unicode build of wxWidgets? [0,1] -- 是否编译为 UNICODE 版本,0 否,1 是
UNICODE = 0
# Type of compiled binaries [debug,release] -- 是 debug 还是 release
BUILD = debug
MONOLITHIC: 是否只产生一个单一的库文件。
USE_GUI: 是否编译图形界面库
USE_HTML: 是否编译 HTML 库
USE_XRC: 是否编译 XRC 库
USE_OPENGL: 是否编译 OPENGL 库
USE_ODBC: 是否编译 ODBC 库
USE_QA: 是否编译 QA 库
RUNTIME_LIBS: 使用动态还是静态的 C++ 运行库,对应 VC 编译器的 /MD 和 /MT 参数
UNICODE、BUILD 选项可产生四种组合,产生四套不同的库,若再和 SHARE 组合则可产生八套不同的库。 我只编译了两套静态库,由于SHARED = 0,还需要把 RUNTIME_LIBS = static,其他选项保持默认:
(1) UNICODE = 1 BUILD = debug
(2) UNICODE = 1 BUILD = release
对于 config.vc 中的选项也可以通过命令行覆盖掉配置文件中的值,如编译命令用
nmake -f makefile.vc SHARED=1 UNICODE=1 BUILD=release
第三步:使用 VC 编译 wxWidgets
打开 Visual Studio 2008 Command Prompt,进入配置文件所在的目录,执行命令:
nmake -f makefile.vc
在目录 %WXPATH%\lib\ 会产生一个目录:vc_lib 是静态库的目录。如果是编译成动态库则会产生目录 vc_dll。
wxWidgets 会根据 Debug 和 Release 以及 UNICODE 、动态库、静态库等条件编译,组合生成文件和目录名。
编译完后可以把 %WXPATH%\build\msw 删了,想重新编译的话可以保留。
第四步:VC 中使用 wxWidgets
在 VC 里新建一个 Win32 Project, 然后在 Application Settings 选项中,将 Additional options 下面的 Empty project 选中,这样项目建立好之后,VC 不会添加任何源代码文件,需要手动新增相应的 cpp 文件后才能继续下面的设置。
引用
Configuration Properties\C/C++\General\Additional Include Directories:
%WXPATH%\include;%WXPATH%\include\msvc
引用
Configuration Properties\C/C++\Preprocessor\Preprocessor Definitions:
WIN32;NDEBUG;_WINDOWS;__WXMSW__
如果是[Debug]就还要加上__WXDEBUG__,变成:
引用
WIN32;_DEBUG;_WINDOWS;__WXMSW__;__WXDEBUG__
引用
Configuration Properties\C/C++\Code Generation\Runtime Library:
Multi-threaded (/MT)
如果是[Debug]就设置成
引用
Multi-threaded Debug(/MTd)
引用
Configuration Properties\Linker\General\Additional Library Directories:
%WXPATH%\lib\vc_lib
引用
Configuration Properties\Linker\Input\Additional Dependencies:
kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib opengl32.lib
这些静态链接库都是一些可能会使用到的 Windows 系统的库,根据需要增减,比如我从来不用odbc,就不需要在这里添加 odbc32.lib。而 wxWidgets 的静态库会自动添加到工程中,不需要在这里设置,在 %WXPATH%\include\msvc\wx\setup.h 文件中可以看到加载这些库的代码。
编译成依赖 DLL 的执行文件还需要加上预处理指令 WXUSINGDLL
用 UNICODE 编译则需要加上预处理指令 _UNICODE
还有一种 Universal 编译,要加上预处理指令 __WXUNIVERSAL__
这样一个普通的 wxWdigets 项目就设置好了。
分享到:
相关推荐
虽然Visual C++主要针对Windows平台,但通过使用如Qt或wxWidgets等跨平台库,也可以将项目扩展到其他操作系统。 10. **协作与版本控制** 开发过程中,使用Git或SVN等版本控制系统进行代码管理和团队协作是现代...
在Visual C++编程环境中,实时曲线显示是一项关键功能,尤其对于数据采集和分析的应用来说。这一功能使得开发者能够直观地观察程序运行时的数据变化,从而进行调试或数据分析。本篇文章将详细探讨如何在Visual C++中...
另外,像Qt、wxWidgets、GTK+等跨平台库也可以在Visual C++中使用,但它们不是Visual C++的一部分,需要单独安装和配置。 在学习C++时,理解语言基础、标准库(STL)的使用是首要任务。STL包含容器(如vector、list...
2. **环境搭建**:安装 wxWidgets 库,配置编译器环境,例如 MinGW 或 Visual Studio。 3. **Hello, World!**:编写第一个简单的 wxWidgets 应用,通常是一个显示 "Hello, World!" 的窗口。 4. **控件和布局**:学习...
以上这些知识点不仅涵盖了C++语言的基础知识和特点,还深入介绍了使用Visual C++ 6.0进行Windows应用程序开发的具体技巧和最佳实践。无论是对于初学者还是有一定基础的开发者来说,都是非常宝贵的学习资源。
在本文中,我们将详细介绍如何在Microsoft Visual C++ (VC++)环境下配置wxWidgets库,以便进行C++图形用户界面开发。wxWidgets是一个跨平台的GUI库,它允许开发者使用C++编写一次代码,运行在多个操作系统上,如...
在本项目中,我们将探讨如何在Visual Studio 2010环境下,利用wxWidgets框架来实现串口功能,具体是通过wxctb-0.9这个库进行操作。以下是对这些知识点的详细说明: **wxWidgets框架**: wxWidgets是一个开源的C++库...
wxWidgets是一个成熟的跨平台C++库,它允许开发者使用一套代码来创建图形用户界面(GUI)程序,这些程序能够在Windows、Linux、Mac OS X等多个操作系统上运行。在深入了解如何使用wxWidgets进行程序开发之前,有必要...
Visual C++是微软公司开发的一款集成开发环境,支持Windows平台下的应用程序开发,包括GUI(图形用户界面)和后台逻辑。其MFC(Microsoft Foundation Classes)库提供了丰富的控件和类,使得开发者能快速构建功能...
标签中的"编译成功 VS2017"表明这个版本的wxWidgets已经在Visual Studio 2017环境下成功编译过,这对于Windows平台上的C++开发者来说是个好消息,因为VS2017是一个广泛使用的IDE,它的兼容性意味着开发者可以立即...
这个指南将详细阐述在Windows环境下如何安装、编译wxWidgets,并在Visual Studio 2008中配置和使用它。 ### 一、下载与编译wxWidgets 首先,你需要从官方网站<http://www.wxwidgets.org/downloads/>下载wxWidgets...
wxWidgets是一个开源的C++库,它允许开发者使用标准的C++语法编写一次代码,然后在多种操作系统上运行,包括Windows、Linux、macOS等。这个光盘例子源码集合包含了书中所有实例的原始代码,对于学习和理解wxWidgets...
《C++跨平台编程与wxWidgets》是一本详细介绍如何使用C++和wxWidgets库进行跨平台GUI编程的书籍。wxWidgets是一个开源的C++库,它允许开发者编写一次代码,即可在多个操作系统上运行,包括Windows、Linux、macOS等。...
- **Windows**: 使用Visual C++编译器时,可以通过下载源码并按照官方指南进行编译安装。 - **macOS**: 通常可以通过Homebrew安装,命令为`brew install wxwidgets`。 #### 四、wxWidgets的开发流程 ##### 4.1 ...
标题中的“Visual C++ VC漂亮的三方界面库”指的是在C++编程环境中,使用第三方库来创建具有现代化、美观用户界面的工具。这类库通常能够帮助开发者实现与.NET框架下的控件相似的外观和功能,而无需依赖.NET环境。在...
wxWidgets是一个开源的C++库,它允许开发者使用标准的C++编写代码,同时能在多个操作系统上运行,包括Windows、Linux、macOS等。这本书深入浅出地介绍了wxWidgets库的使用方法,结合书中提供的源码,读者可以更好地...
2. GUI编程:在Visual C++中,你可以使用MFC或其他图形用户界面库如Qt或wxWidgets来创建美观且功能丰富的应用。范例可能会展示如何创建和响应各种控件事件,以及如何布局和自定义用户界面。 3. 面向对象编程:C++是...