VC 6.0下搭建 wxWidgets开发环境

本文详细介绍了如何在VC++6.0下搭建wxWidgets的开发环境,包括下载、安装wxWidgets源码,配置编译参数以生成静态库或动态库,以及如何创建使用wxWidgets的项目并进行编译。通过本文,读者可以快速掌握从环境搭建到项目实现的全过程。

           VC 6.0 下搭建  wxWidgets  开发环境


     和 GTK QT SWT SWING  一样, wxWidgets  也是一种开源跨平台的  GUI  框架。因  wxWidgets  和  MFC  有些渊源,有些亲近,故要体验一番  wxWidgets 。现在最新版是  2.8.7 wxWidgets  程序还可运行于  Windows CE Palm OS 。不但包括  GUI ,还有  Media Socket ODBC  等库。

详情请见 wxWidgets  的官方网站是: http://www.wxwidgets.org

本篇介绍 VC++6.0  下如何搭建  wxWidgets  的开发环境,包括编译  wxWidgets  源码和配置  VC  环境。所用  wxWidgets  的版本是  2.8.7

第一步:下载并安装 wxWidgets

在 http://www.wxwidgets.org/downloads/  下载到  wxWidgets  源码。
你可以下载 Windows  安装版  http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.7-Setup.exe (11.9M)
或者是 Zip  压缩版  http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.7.zip (15.9M)

假如我们下载的是 wxMSW-2.8.7-Setup.exe ,就可运行它,过程中我们假定选择的安装目录是  d:/wxWidgets-2.8.7 。 完成后,我们看到安装目录所在空间的大不是  127M

注意要给 wxWidgets  有足够的剩余空间,单是编译一个版本的静态库就会增至 300 M ,如果还要编译动态库再选择上  DEBUG  或者  RELEASE ASCII  或是  UNICODE  等,还要编译  sample  的话,最后空间能够暴到  2G

第二步:编译 wxWidgets

编译方式有两种,一种是在 VC++  中打开  wx.dsw  进行编译,另一种是用  nmake  在命令行下编译。

1) nmake 编译

运行 cmd.exe  来到命令行下,进入到目录  d:/wxWidgets-2.8.7 ,然后执行

D:/wxWidgets-2.8.7>nmake -f makefile.vc

默认是编译成 DEBUG  版的静态库。也许我们在编译之前需要根据自己的需要进行一些设置:

打开 D:/wxWidgets-2.8.7/include/wx/msw/setup.h

保证第 110  行的  #define wxUSE_DEBUG_NEW_ALWAYS  设置为  0 。默认是  的。
将 1137  行的  #define wxUSE_IOSTREAMH  设置为  0 ,否则无法使用  VC  的模板库 ( 不能用  std  命名空间下的 ) 。默认是  1
如果要使用 wxWidgets  提供支持数据库的  ODBC  类,将  #define wxUSE_ODBC  设为  1 。默认是  1

如果你想生成动态库,或生成的是 Release  版的,你可以修改  D:/wxWidgets-2.8.7/build/msw/config.vc  文件。打开该文件你能看到可以更改的选项,其中重要的几个如下:

# What type of library to build? [0,1] -- 生成库的类型, 0 为静态库, 1 为动态库
SHARED = 0

# Compile Unicode build of wxWidgets? [0,1] -- 是否使和  UNICODE 否,
UNICODE = 0

# Type of compiled binaries [debug,release] -- 是  debug  还是  release
BUILD = debug

其中还有许多顾名思义的选项,请根据需求修改。

对于 config.vc  中的选项也可以通过命令行覆盖掉配置文件中的值,如编译命令用

D:/wxWidgets-2.8.7>nmake -f makefile.vc SHARED=1 UNICODE=1 BUILD=release

就是编译 release  版,支持  UNICODE  的动态库了。

动态库和静态库的不同体现在使用上,静态库中的代码能编译进应用程序的 exe  文件中,这个  exe  文件可单独发布,但体积较庞大。动态库可让  exe  文件执行时加载,虽然  exe  文件体积小了,但发布时必须带着相应的动态库文件。

2) VC 编译
还 可用 VC++  打开  D:/wxWidgets-2.8.7/build/msw/wx.dsw ,然后选择  Build->Batch Build...  ,我们看到每个工程都有  16  个配置,请根据应用需求勾选你的配置,如所有工程的  Win32 Release  和  Win32 Debug  版本,然后  Build ,如果你照单全收,编译将非常耗时而占空间。这种编译方式就是可以一下操作帮你编译出所有需要的版本。

好, 等等编译完之后,在目录 D:/wxWidgets-2.8.7/lib/  会有产生一个目录: vc_lib  是静态库的目录,默认编译有  17  个静态。如果是编译成动态库则会产生目录  vc_dll 。在  vc_lib  中有  mswd  目录, release  版对应的是  msw ,里面含有  Debug  和  Release  版的  setup.h

注意到 Debug  版和  Release  以及和  UNICODE  、动态库、静态库组合条件编译生成的文件和目录名。
静态库编译到 D:/wxWidgets-2.8.7/lib/vc_lib  目录中
动态库编译到 D:/wxWidgets-2.8.7/lib/vc_dll  目录中
文件命名为 wxmsw28d_core.lib  文件为例:
wxmsw28_core.lib ---- Release,非  UNICODE 
wxmsw28d_core.lib ---- Debug,非  UNICODE 
wxmsw28u_core.lib ---- Release UNICODE 
wxmsw28ud_core.lib ---- Debug UNICODE 
对于 dll  文件的命名规范也一样的。
在 vc_lib  和  vc_dll  下如果全编译了会有四个目录, msw mswd mswu mswud  意义同上。

编译完后可以把那些过程中的目标文件删了,它们占的空间实在是太大。要是你还想以后重新编译用就留着吧。

第三步:创建 wxWidgets  项目

创建一个 Win32 Application  的空项目,项目名为  wxHello
Proejct->Settings (Alt+F7) 进入项目设置
1. C/C++选项卡 ->Code Generation -> use run-time library  设置为 : Debug MutilThread DLL
2. C/C++选项卡 -> PreProcessor -> PreProcessor Definitions  设置加上  __WXMSW__,__WXDEBUG__ , 如果是  Release  , 则只需加上  __WXMSW__
3. C/C++选项卡 -> PreProcessor -> Additional include directories  设置为  D:/wxWidgets-2.8.7/include,D:/wxWidgets-2.8.7/include/lib/vc_lib/mswd,  这是设置附加  Include  路径。
4. Link 选项卡 -> Input -> Object/library modules  设置加上  wxmsw28d_core.lib wxbase28d.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexd.lib wxexpatd.lib  这些  Lib( 没有这四个  lib comctl32.lib rpcrt4.lib winmm.lib wsock32.lib  的话请加上,关键是前两个 ) 。如果要使用  wxODBC  就加上 wxbase28d_odbc.lib
5. Link 选项卡 -> Input -> Addtional library path  设置为 : D:/wxWidgets-2.8.7/lib/vc_lib

注意:编译成不同版的执行代码应填入相应的 Additional include directories  和  Addtional library path
编译成依赖 DLL  的执行文件还需要加上预处理指令  WXUSINGDLL
UNICODE  编译则需要加上预处理指令  _UNICODE
还有一种 Universal  编译,要加上预处理指令  __WXUNIVERSAL__

这样一个普通的WxWdigets 项目就设置好了 .

 我们测试 WxWidgets  自带的例子  minimal 。新建一个  minimal.cpp  文件,内容同  D:/wxWidgets-2.8.7/samples/minimal/minimal.cpp ,编译,不出意外,成功了 !

 也可设置全局的目录

前 面我们是为项目配置 Additional Include Directories  和  Additional library path 。我们可以把这设置成全局的。就可以不用在项目中单独设置。全局设置有其缺陷,无法分开是  vc_lib  还是  vc_dll  中的  lib ,是  mswd  还是  msw  中的  wx/setup.h  文件。在这里设置  Source Files  还是必要的。并且在下面前两个  Include Files  放在全局设置里也较合适。

进到 VC++  的  Tools->Options->Directories ,选择  "Include Files"  后,添加
D:/wxWidgets-2.8.7/include
D:/wxWidgets-2.8.7/contrib/include
D:/wxWidgets-2.8.7/lib/vc_lib/mswd

对应于 Project Settings -> C/C++ Tab->Preprocessor  中的  Additional include directories

再选择 "Libraries Files" ,添加
D:/wxWidgets-2.8.7/vc_lib

对应于 Project Settings -> Link Tab -> Input  中的  Additional library path

再选择 "Source Files" ,添加
D:/wxWidgets-2.8.7/src

最后大致比较一下生成程序的大小

Release 静态库版 (vc_msw) minimal.exe 1.11M ,可单独发布
Debug 静态库版 (vc_mswd) minimal.exe 2.52M ,可单独发布
Release 动态库版 (vc_mswdll) minimal.exe 68K ,加上 wxmsw28_core_vc_custom.dll (2.85M)  和  wxbase28_vc_custom.dll (1.11M) ,共  4M
Debug 动态库版 (vc_mswddll) minimal.exe 96K ,加上 wxmsw28d_core_vc_custom.dll (4.26M)  和  wxbase28d_vc_custom.dll (1.82M) ,共  6.1M

这是一个简单的 wxWidgets  程序,只用到了两个动态库的情况。在用到  wxWidgets  库较少时用静态库来编译发布文件会小一些,若是用到组件多的时候,可能用动态库方便些,请酌情决定。 


本文转载自优快云 http://sd.youkuaiyun.com/page/8af6ed1e-b6b4-4ef9-8bc2-6f5485c79c34

【SCI一区复现】基于配电网韧性提升的应急移动电源预配置和动态调度(下)—MPS动态调度(Matlab代码实现)内容概要:本文档围绕“基于配电网韧性提升的应急移动电源预配置和动态调度”主题,重点介绍MPS(Mobile Power Sources)动态调度的Matlab代码实现,是SCI一区论文复现的技术资料。内容涵盖在灾害或故障等极端场景下,如何通过优化算法对应急移动电源进行科学调度,以提升配电网在突发事件中的恢复能力与供电可靠性。文档强调采用先进的智能优化算法进行建模求解,并结合IEEE标准测试系统(如IEEE33节点)进行仿真验证,具有较强的学术前沿性和工程应用价值。; 适合人群:具备电力系统基础知识和Matlab编程能力,从事电力系统优化、配电网韧性、应急电源调度等相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于复现高水平期刊(SCI一区、IEEE顶刊)中关于配电网韧性与移动电源调度的研究成果;②支撑科研项目中的模型构建与算法开发,提升配电网在故障后的快速恢复能力;③为电力系统应急调度策略提供仿真工具与技术参考。; 阅读建议:建议结合前篇“MPS预配置”内容系统学习,重点关注动态调度模型的数学建模、目标函数设计与Matlab代码实现细节,建议配合YALMIP等优化工具包进行仿真实验,并参考文中提供的网盘资源获取完整代码与数据。
一款AI短视频生成工具,只需输入一句产品卖点或内容主题,软件便能自动生成脚本、配音、字幕和特效,并在30秒内渲染出成片。 支持批量自动剪辑,能够实现无人值守的循环生产。 一键生成产品营销与泛内容短视频,AI批量自动剪辑,高颜值跨平台桌面端工具。 AI视频生成工具是一个桌面端应用,旨在通过AI技术简化短视频的制作流程。用户可以通过简单的提示词文本+视频分镜素材,快速且自动的剪辑出高质量的产品营销和泛内容短视频。该项目集成了AI驱动的文案生成、语音合成、视频剪辑、字幕特效等功能,旨在为用户提供开箱即用的短视频制作体验。 核心功能 AI驱动:集成了最新的AI技术,提升视频制作效率和质量 文案生成:基于提示词生成高质量的短视频文案 自动剪辑:支持多种视频格式,自动化批量处理视频剪辑任务 语音合成:将生成的文案转换为自然流畅的语音 字幕特效:自动添加字幕和特效,提升视频质量 批量处理:支持批量任务,按预设自动持续合成视频 多语言支持:支持中文、英文等多种语言,满足不同用户需求 开箱即用:无需复杂配置,用户可以快速上手 持续更新:定期发布新版本,修复bug并添加新功能 安全可靠:完全本地本地化运行,确保用户数据安全 用户友好:简洁直观的用户界面,易于操作 多平台支持:支持Windows、macOS和Linux等多个操作系统
源码来自:https://pan.quark.cn/s/2bb27108fef8 **MetaTrader 5的智能交易系统(EA)**MetaTrader 5(MT5)是由MetaQuotes Software Corp公司研发的一款广受欢迎的外汇交易及金融市场分析软件。 该平台具备高级图表、技术分析工具、自动化交易(借助EA,即Expert Advisor)以及算法交易等多项功能,使交易参与者能够高效且智能化地开展市场活动。 **抛物线SAR(Parabolic SAR)技术指标**抛物线SAR(Stop and Reverse)是由技术分析专家Wells Wilder所设计的一种趋势追踪工具,其目的在于识别价格走势的变动并设定止损及止盈界限。 SAR值的计算依赖于当前价格与前一个周期的SAR数值,随着价格的上扬或下滑,SAR会以一定的加速系数逐渐靠近价格轨迹,一旦价格走势发生逆转,SAR也会迅速调整方向,从而发出交易提示。 **Parabolic SAR EA的操作原理**在MetaTrader 5环境中,Parabolic SAR EA借助内嵌的iSAR工具来执行交易决策。 iSAR工具通过计算得出的SAR位置,辅助EA判断入市与离市时机。 当市场价位触及SAR点时,EA将产生开仓指令,倘若价格持续朝同一方向变动,SAR将同步移动,形成动态止损与止盈参考点。 当价格反向突破SAR时,EA会结束当前仓位并可能建立反向仓位。 **智能交易系统(EA)的优越性**1. **自动化交易**:EA能够持续监控市场,依据既定策略自动完成买卖操作,减少人为情感对交易的影响。 2. **精确操作**:EA依照预设规则操作,无任何迟疑,从而提升交易成效。 3. **风险管控**:借助SA...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值