系统:win10 64位windows
IDE:VS 2017 Communityide
FLTK版本:1.3.4-2测试
截止到本文编写,FLTK的最新稳定版本是1.3.4-2。咱们从官网(www.fltk.org)下载到它的源码包。以下图:字体
我把它解压到D:\FLTK目录下:编码
FLTK是跨平台的C++ GUI库,以源代码形式发布,所以在使用前须要编译。FLTK官方推荐在Windows系统下,将FLTK编译成静态连接库的形式使用。在解压后的目录下找到:ide目录,里面提供了预先配置好的VS和Xcode项目。spa
在README文件中发现以下内容:插件
ide/VisualC6 Microsoft Visual C++ 6 and 2005 (2)
ide/VisualC2008 Microsoft Visual C++ 2008
ide/VisualC2010 Microsoft Visual C++ 2010 and later (3)
ide/Xcode4 Apple Xcode 3.x and up (see ../README.OSX.txt)命令行
所以咱们选择VisualC2010目录,并双击里面的 “fltk.sln” 就能够用VS2017打开解决方案。打开时会弹出以下窗口,意思是将项目更新到最新的VS兼容版本,点击确认便可。debug
打开解决方案后,在左边的项目列表中找到demo项目,右键之,选择【设为启动项目】,以下图:3d
将项目配置为Debug模式下的Win32开发平台(默认就是这样,通常无需改动)
按【F7】或者点击菜单栏的【生成】->【生成解决方案】开始编译,大约3~5分钟就好。
一切顺利会获得以下图的编译输出信息
而后将Debug切换为Release,其它不变,再重新生成解决方案。 一切顺利后,咱们【Ctrl + F5】运行demo项目,会看到一个官方的演示程序(注:Debug模式运行会带一个命令行窗口,Release模式则不带)。以下图:
如今咱们能够关闭VS2017了。
前面2次生成解决方案会编译造成14个.lib后缀的静态库文件,他们位于FLTK的lib目录下。文件名称以d结尾的表示是debug模式下编译造成的,不带d的则是release模式下造成的,例如fltkd.lib和fltk.lib。
打开VS2017的VC++ 目录,个人机器上是:C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023
第一步:将14个.lib文件拷贝到上图VC++的lib目录下的x86目录下。拷贝后以下图:
第二步:将FLTK目录下的FL文件夹拷贝VC++的的include目录下。拷贝后以下图:
使用VS2017新建一个VC++空项目名为hello,以下图:
向项目中添加一个main.cpp源文件,使用下面的测试代码。
#include <FL/Fl.H> #include <FL/Fl_Window.H> #include <FL/Fl_Box.H> int main(int argc, char *argv[]) { Fl_Window *window; Fl_Box *box; window = new Fl_Window(450, 330, "First App!"); box = new Fl_Box(20, 40, 360, 200, "Hello World,世界你好"); box->box(FL_FLAT_BOX); box->labelsize(36); //设置字体大小 box->labelfont(FL_BOLD + FL_ITALIC); //设置字体 box->labeltype(FL_SHADOW_LABEL); //设置label的类型 window->end(); window->show(argc, argv); return Fl::run(); }
先不急着运行,要对项目进行以下2部分配置。右键项目名【hello】->【属性】能够打开下面的配置窗口。
下图演示了对项目的Debug模式进行配置的细节。当要发布程序的release版本时,一样须要对Release模式进行配置再编译。两者的区别在于,【附加依赖项】中,输入的lib静态库不一样,Debug模式使用名称带d的库,Release模式则使用不带d的库。
FLTK源代码中,会根据平台相关宏来进行条件编译,从而实现跨平台的特性,Windows平台对应的宏就是WIN32,所以咱们须要预约义这个宏。
添加依赖库。Comctl32.lib是必须的,而后就是FLTK相关的静态库。FLTK相关的静态库有7对,应用程序使用了某些功能,就添加对应的FLTK静态库,fltkd.lib(Release模式下是fltk.lib)是必须的。
运行效果:
/subsystem:windows /subsystem:console
FLTK 1.3.4是支持UTF-8编码的。若是出现了中文乱码状况,经过将源代码文件转变为UTF-8编码格式可能会解决。
这里推荐一个VS插件,能够强制新建的文件都以UTF-8编码方式编码。