如何在VS2008下使用FLTK

在VS2008下使用FLTK(VS2008 Service Pack 1须已被安装。)

一、          编译FLTK(两种方法)

方法1:

①用VS2008打开fltk.sln(文件在...\fltk-1.3.xxxx\ide\VisualC2008\fltk.sln)

②在解决方案配置框选择debug或release。 

 

③在VS2008左边解决方案资源管理器下右击demo文件,选择“设为启动项目”

④按F7

方法2(推荐使用这个方法):

使用Cmake。从http://www.cmake.org/下载并安装Cmake。步骤见:

http://blog.163.com/jacky_ling0/blog/static/137392571201010484049654/

我编译成功的64位库链接地址:https://files.cnblogs.com/jiahu-Blog/FLTK%E5%B7%B2%E7%BC%96%E8%AF%91.rar

 

二、安装FLTK:

VS默认的库与头文件目录为:

C:\Program Files\Microsoft Visual Studio 9.0\VC\

如果你更改了安装目录,所需目录一般在你的安装目录下可以找到这。找到VC目录之后的操作与下面相同。

将FLTK的头文件与库文件复制到对应的文件夹下:

1、复制所有的  .lib 文件到VC库目录(即....\VC\lib\)。

2、复制整个FL目录到VC的include目录下(即....\VC\include\)。

3、复制fluid.exe到VC的bin目录下(....\VC\bin\)。

(不建议使用动态.dll库,因为可能需要安装。最好使用.lib库)

三、创建一个新的项目:

在Visual C++下选择“常规”,在左边选择“空项目”或者建立win32控制台程序(空项目)。然后添加一个  *.cpp 文件。

右击项目名,选择属性→C/C++→预处理器→(将  WIN32;NDEBUG;_CONSOLE  复制进“预处理器定义”)

右击项目名,选择属性→链接器→输入→将fltk*.lib的目录写入附加的依赖项(例如:D:\AppInstall\VS2008\VC\lib\fltk*  加星号的目的是将所有FLTK库都导入)

 

测试代码:

#include <FL/Fl.H>

#include <FL/Fl_Window.H>

#include <FL/Fl_Button.H>

#include <FL/Fl_Input.H>

#include <FL/Fl_Output.H>

#include <cstdlib>                   //for exit(0)

#include <string.h>

using namespace std;

 

void copy_cb( Fl_Widget* , void* );  //function prototypes

void close_cb( Fl_Widget* , void* );

void make_window();

int main() {

         make_window();

         return Fl::run();

}

void make_window() {

         Fl_Window* win= new Fl_Window(300,200, "Testing 2");

         win->begin();      

         Fl_Button*  copy = new Fl_Button( 10, 150, 70, 30, "C&opy"); //child 0   : 1st widget

         Fl_Button* close = new Fl_Button(100, 150, 70, 30, "&Quit"); //child 1    : 2nd widget

         Fl_Input*       inp = new Fl_Input(50, 50, 140, 30, "In");              //child 2 : 3rd widget

         Fl_Output*    out = new Fl_Output(50, 100, 140, 30, "Out");     //child 3   : 4th widget

         win->end();

         copy->callback(  copy_cb );

         close->callback( close_cb );

         win->show();

}

void copy_cb( Fl_Widget* o , void* ) {

         Fl_Button* b=(Fl_Button*)o;

         Fl_Input* iw = (Fl_Input*) b -> parent() -> child(2);

         Fl_Output* ow = (Fl_Output*) b -> parent() -> child(3);

         ow->value( iw->value() );

}

void close_cb( Fl_Widget* o, void*) {

         exit(0);

}/////////////////////////////////////////////////

 

posted @ 2014-01-17 22:49  jiahu  阅读(1004)  评论(0编辑  收藏  举报