系統: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編碼方式編碼。