Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.65/26: Рейтинг темы: голосов - 26, средняя оценка - 4.65
0 / 0 / 0
Регистрация: 15.02.2012
Сообщений: 31

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

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

Студворк — интернет-сервис помощи студентам
В книге чтобы инсталировать, открыть файл fltk.dsw, а в каталоге нет файлов такого формата, все *.vcproj. Помогите установить
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.02.2012, 23:06
Ответы с готовыми решениями:

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

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

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

20
 Аватар для Liss29
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,638
28.12.2018, 05:05
Студворк — интернет-сервис помощи студентам
И снова о библиотеке Страуструпа: 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.12.2018, 05:05

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru