Читаем Программирование полностью

3. В основном каталоге библиотеки FLTK откройте подкаталог lib. Скопируйте (а не просто переместите или перетащите) все файлы с расширением .lib, за исключением файла README.lib (их должно быть семь) в каталог C:\Program Files\Microsoft Visual Studio\Vc\lib.

4. Вернитесь в основной каталог библиотеки FLTK и скопируйте подкаталог FL в каталог C:\Program Files\Microsoft Visual Studio\Vc\include.


Эксперты скажут вам, что было бы лучше инсталлировать библиотеку, а не копировать файлы в каталоги C:\Program Files\Microsoft Visual Studio\Vc\lib и C:\Program Files\Microsoft Visual Studio\Vc\include. Они правы, но мы не стремимся быть экспертами по среде Visual Studio. Если эксперты будут настаивать, попросите их продемонстрировать лучшую альтернативу. 

Г.4. Использование библиотеки FLTK в среде Visual Studio

1. Создайте новый проект в среде Visual Studio, внеся одно изменение в обычной процедуре: выбирая тип проекта, выберите опцию “Win32 project”, а не “Console application”. Убедитесь, что вы создаете “Empty project”; в противном случае мастер добавит в ваш проект много лишнего кода, который вы не поймете и вряд ли будете использовать.

2. Находясь в среде Visual Studio, выберите команду Project в главном меню, а в выпадающем меню выполните команду Properties.

3. В левом меню окна Properties щелкните на пиктограмме Linker. В открывающемся подменю выберите команду Input. В поле редактирования Dependencies, находящемся справа, введите следующий текст:


fltkd.lib wsock32.lib comctl32.lib fltkjpegd.lib fltkimagesd.lib


(Следующий шаг может оказаться ненужным, поскольку в настоящее время он выполняется по умолчанию.)

В поле редактирования Ignore Specific Library введите следующий текст:


libcd.lib


4. Этот шаг может оказаться ненужным, так как в настоящее время опция /MDd включается по умолчанию. В левом меню того же самого окна Properties выберите команду C/C++, чтобы открыть другое подменю. Открыв подменю, выберите команду Code Generation. В правом меню измените опцию Runtime Library на Multi-threaded Debug DLL (/MDd). Щелкните на кнопке OK, чтобы закрыть окно Properties.

Г.5. Как тестировать, если не все работает

Создайте новый файл с расширением .cpp в новом проекте и введите следующий код. Он должен скомпилироваться без проблем.


#include

#include

#include


int main()

{

  Fl_Window window(200, 200, "Window title");

  Fl_Box box(0,0,200,200,"Hey, I mean, Hello, World!");

  window.show();

  return Fl::run();

}


Если что-то не работает, выполните следующее.

• Если вы получили сообщение компилятора, утверждающее, что файл с расширением .lib невозможно найти, то, возможно, вы сделали что-то не так при инсталлировании библиотеки. Внимательно проверьте п. 3, в котором указан путь для сохранения библиотечных файлов (.lib) на вашем компьютере.

• Если вы получили сообщение компилятора, утверждающее, что файл с расширением .h невозможно открыть, значит, скорее всего, вы ошиблись при инсталлировании. Внимательно проверьте п. 3, в котором указан путь для сохранения заголовочных файлов (.h) на вашем компьютере.

• Если вы получили сообщение редактора связей, упоминающее о неразрешенных внешних ссылках, то проблема таится в свойствах проекта.


Если наши советы вам не помогли, зовите друга. 

Приложение Д

Реализация графического пользовательского интерфейса

“Когда вы наконец поймете, что делаете,

то все пойдет правильно”

Билл Фэйрбэнк (Bill Fairbank)


В этом приложении представлена реализация обратных вызовов, а также классов Window, Widget и Vector_ref. В главе 16 мы не требовали от читателей знать об указателях и операторах приведения типа, поэтому вынесли подробные объяснения в приложение.

Д.1. Реализация обратных вызовов

Обратные вызовы реализованы следующим образом:


void Simple_window::cb_next(Address, Address addr)

// вызов функции Simple_window::next() для окна,

// расположенного по адресу addr

{

  reference_to(addr).next();

}


Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже