0 / 0 / 0
Регистрация: 15.02.2012
Сообщений: 31
1

Инсталяция библиотеки FLTK

17.02.2012, 23:06. Показов 4657. Ответов 20
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В книге чтобы инсталировать, открыть файл fltk.dsw, а в каталоге нет файлов такого формата, все *.vcproj. Помогите установить
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.02.2012, 23:06
Ответы с готовыми решениями:

Инсталляция библиотеки FLTK
Пытаюсь установить библиотеку fltk, так как написано в учебнике Страуструпа. Но в итоге...

Ошибки линковки библиотеки FLTK
Добрые сутки, на данный момент я изучаю FLTK По исключительной ситуации я ничего не могу понять,...

Бьерн Страуструп. Инсталляция библиотеки FLTK
Всем доброго времени суток. Помогите пожалуйста решить проблему. Хочу сразу оговориться, что...

FLTK, нет файла fltk.lib
Прохожу 12 главу Страуструпа, всё изгуглил, и почти пришёл к решению. После установки ftlk в vs, у...

20
223 / 37 / 4
Регистрация: 18.11.2012
Сообщений: 1,502
28.12.2018, 05:05 21
Author24 — интернет-сервис помощи студентам
И снова о библиотеке Страуструпа: FLTK установилась, работает как надо, а вот с файлами графической библиотеки Страуструпа возникли кое какие проблемы, не хочет собираться проект, причём простой-тестовый, сигнализируя об ошибках.
Вот, собственно, сами ошибки:
gui.h(128): error C2228: выражение слева от ".attach" должно представлять класс, структуру или объединение

window.cpp(37): error C2664: "void Graph_lib::Widget::attach(Window &)": невозможно преобразовать аргумент 1 из "Graph_lib::Window" в "Window &"
Сами файлы, на которые ругается компилятор:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
//
// This is a GUI support code to the chapters 12-16 of the book
// "Programming -- Principles and Practice Using C++" by Bjarne Stroustrup
//
 
#ifndef GUI_GUARD
#define GUI_GUARD
 
#include "Window.h"
#include "Graph.h"
#include<FL\Fl_Widget.h>
#include<FL\Fl_Input.h>
#include<FL\Fl_Output.h>
#include<FL\Fl_Button.h>
#include<cctype>
 
namespace Graph_lib {
//------------------------------------------------------------------------------
 
    typedef void* Address;    // Address is a synonym for void*
    typedef void(*Callback)(Graph_lib::Address, Graph_lib::Address);    // FLTK's required function type for all callbacks
 
//------------------------------------------------------------------------------
 
    template<class W> W& reference_to(Graph_lib::Address pw)
    // treat an address as a reference to a W
    {
        return *static_cast<W*>(pw);
    }
 
//------------------------------------------------------------------------------
 
    class Widget {
    // Widget is a handle to an Fl_widget - it is *not* an Fl_widget
    // We try to keep our interface classes at arm's length from FLTK
    public:
        Widget(Point xy, int w, int h, const string& s, Callback cb)
            : loc(xy), width(w), height(h), label(s), do_it(cb)
        {}
 
        virtual void move(int dx,int dy) { hide(); pw->position(loc.x+=dx, loc.y+=dy); show(); }
        virtual void hide() { pw->hide(); }
        virtual void show() { pw->show(); }
        virtual void attach(Window&) = 0;
 
        Point loc;
        int width;
        int height;
        string label;
        Callback do_it;
 
        virtual ~Widget() { }
 
    protected:
        Window* own;    // every Widget belongs to a Window
        Fl_Widget* pw;  // connection to the FLTK Widget
    private:
        Widget& operator=(const Widget&) = delete; // don't copy Widgets
        Widget(const Widget&) = delete;
    };
 
//------------------------------------------------------------------------------
 
    struct Button : Widget {
        Button(Point xy, int w, int h, const string& label, Callback cb)
            : Widget(xy,w,h,label,cb)
        {}
 
        void attach(Window&);
    };
 
//------------------------------------------------------------------------------
 
    struct In_box : Widget {
        In_box(Point xy, int w, int h, const string& s)
            :Widget(xy,w,h,s,0) { }
        int get_int();
        string get_string();
 
        void attach(Window& win);
    };
 
//------------------------------------------------------------------------------
 
    struct Out_box : Widget {
        Out_box(Point xy, int w, int h, const string& s)
            :Widget(xy,w,h,s,0) { }
        void put(int);
        void put(const string&);
 
        void attach(Window& win);
    };
 
//------------------------------------------------------------------------------
 
    struct Menu : Widget {
        enum Kind { horizontal, vertical };
        Menu(Point xy, int w, int h, Kind kk, const string& label)
            : Widget(xy,w,h,label,0), k(kk), offset(0)
        { }
 
        Vector_ref<Button> selection;
        //vector<Button> selection;
        Kind k;
        int offset;
        int attach(Button& b);      // Menu does not delete &b
        int attach(Button* p);      // Menu deletes p
 
        void show()                 // show all buttons
        {
            for (int i = 0; i<selection.size(); ++i)
                selection[i].show();
        }
        void hide()                 // hide all buttons
        {
            for (int i = 0; i<selection.size(); ++i) 
                selection[i].hide(); 
        }
        void move(int dx, int dy)   // move all buttons
        {
            for (int i = 0; i<selection.size(); ++i) 
                selection[i].move(dx,dy);
        }
        //void attach(Window& win);
       [B] void attach(Window& win)    // attach all buttons
        {
            for (unsigned int i=0; i<selection.size(); ++i) 
                win.attach(selection[i]);
 
            own = &win;
        }[/B]
 
    };
 
//------------------------------------------------------------------------------
 
} // of namespace Graph_lib
 
#endif // GUI_GUARD


Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include "Window.h"
//#include "Graph.h"
//#include "GUI.h"
 
namespace Graph_lib
{
 
Window::Window(int ww, int hh, const string& title)
:Fl_Window(ww,hh,title.c_str()),w(ww),h(hh)
{
    init();
}
 
Window::Window(Point xy, int ww, int hh, const string& title)
:Fl_Window(xy.x,xy.y,ww,hh,title.c_str()),w(ww),h(hh)
{ 
    init();
}
 
void Window::init()
{
   resizable(this);
   show();
} 
 
//---------------------------------------------------- 
 
void Window::draw()
{
    Fl_Window::draw();
    for (unsigned int i=0; i<shapes.size(); ++i) shapes[i]->draw();
}
 
[B]void Window::attach(Widget& w)
{
    begin();            // FTLK: begin attaching new Fl_Wigets to this window
        w.attach(*this);    // let the Widget create its Fl_Wigits
    end();              // FTLK: stop attaching new Fl_Wigets to this window
}[/B]
 
void Window::detach(Widget& b)
{
      b.hide();
}
 
void Window::attach(Shape& s)
{
        shapes.push_back(&s);
//      s.attached = this;
}
void Window::detach(Shape& s)
{
        for (unsigned int i = shapes.size(); 0<i; --i)  // guess last attached will be first released
            if (shapes[i-1]==&s)
                shapes.erase(shapes.begin()+(i-1));//&shapes[i-1]);
}
 
 
void Window::put_on_top(Shape& p) {
    for (unsigned int i=0; i<shapes.size(); ++i) {
        if (&p==shapes[i]) {
            for (++i; i<shapes.size(); ++i)
                shapes[i-1] = shapes[i];
            shapes[shapes.size()-1] = &p;
            return;
        }
    }
}
 
 
 
int gui_main() { return Fl::run(); }
 
} // Graph

Не могу разобраться, почему аргумент Window& win не является классом/перечисление/структурой, как так, ведь это же объект класса(ссылка на объект), в чём дело?

С преобразованием из Graph_lib::Window в Window& тоже не ясности, пробовал так *(Window*)this, но всё бес толку.
Прошу помощи, как исправить!
0
28.12.2018, 05:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.12.2018, 05:05
Помогаю со студенческими работами здесь

Подключение библиотеки FLTK к Code::Blocks
Сориентируйте пожалуйста. Не могу подключить данную библиотеку. Требует папку include, которой нет....

С# инсталяция
Доброго времени суток..Первый раз здесь, просмотрел много тем вроде как я понял людям...

Инсталяция программы
Здравствуйте. Написал программу на Delphi. Сама по себе программа работает правильно. Но...

инсталяция Oracle
Можно ли установить Oracle for NT d chtlt Win2000


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru