Установка D Form Library 2

Недавно команда авторов этого блога решила обуздать одну из мощных библиотек для построения графического интерфейса (жаль, что она только под Windows) — D Form Library 2 (или если сокращенно, DFL2), с которой у нас изначально никак не клеилось…

С одной стороны, мы уже начали работать с DGui, так зачем нам совершенно другая графическая библиотека со своими законами и своим кодом?

Как ни странно, но все наши мучения с DFL2 уже окупились потому что, несмотря на то, что DFL2 довольно тяжело установить (с учетом того, что это еще весьма сырой продукт) есть огромный плюс — DFL2 является реинкарнацией довольно старой библиотеки DFL, под которую существует весьма неплохой дизайнер форм, служащий по совместительству компактной IDE под D. Также, DFL2 гораздо более мощная библиотека по сравнению с DGui, и в ней отсутствуют присущие DGui глюки с событиями на некоторых компонентах: более того, стоит отметить, что переход с DGui на DFL2 потребует минимум усилий, в связи с тем, что многие вещи в обоих библиотеках выглядят одинаково.

Для начала, необходимо скачать DFL2 отсюда и разместить папку с библиотекой в удобном для вас месте. Следующим штрихом, необходимо в папке DFL2 найти файл socket.d (располагается он здесь: <папка с DFL2>/source/dfl/) и убрать в этом файле следующие ключевые слова у всех имеющихся там функций и конструкторов класса (перечисляю каждую конструкцию для удаления с новой строки):

@nogc
nothrow
@safe
@trusted
pure

После чего, переходим в папку с DFL2 и запускаем скрипт dubbuild.bat (предполагается, что dub уже установлен, если же нет — нужно его установить, взяв его отсюда) — и все. После завершения компиляции необходимо перейти в папку <папка с DFL2>/debug/ и скопировать файл dfl_debug.lib в папку библиотек DMD (находится эта папка примерно тут: C:\D\dmd2\windows\lib\).

На этом установка DFL2 не заканчивается… Папку dfl, находящуюся здесь: <папка с DFL2>/source/dfl/ нужно скопировать в папку C:\D\dmd2\windows\import (если папка import по этому пути не существует, необходимо ее создать и скопировать папку dfl в нее).

Таким образом, когда все необходимые приготовления закончены, мы получили уже функционирующую библиотеку, однако, компилятор dmd еще не готов к работе с DFL2 и ему нужно явно указать, откуда будут импортированы файлы библиотеки для вашего проекта. Для того, чтобы дать компилятору явное указание, требуется открыть файл C:\D\dmd2\windows\bin\sc.ini и добавить в строку DFLAGS следующее:

«-I%@P%\..\import\»

На этом установка DFL2 закончена.

Для небольшого тестирования библиотеки возьмем какой-нибудь пример из коллекции примеров под DFL2, которую можно скачать тут и попробуем его скомпилировать. Команда компиляции выглядит следующим образом:

dmd -de -w -property -release -O -m32 -IC:\D\dmd2\windows\import dfl_debug.lib ole32.lib oleAut32.lib gdi32.lib Comctl32.lib Comdlg32.lib advapi32.lib uuid.lib ws2_32.lib -L/SUBSYSTEM:WINDOWS <имя_файла.d>

Естественно, перед компиляцией, в командной строке необходимо перейти в папку с лежащим в ней файлом исходного кода. Согласен, что команда компиляции выглядит достаточно жестоко, но посмотрите результат сборки одной из утилит для облегчения этой самой сборки:

Снимокэкранаот2015-01-2518 41 33_0_o

Не дурно выглядит, а ?

В одной из следующих статей блога я покажу, как работать с графическим дизайнером под DFL2 и заодно немного расскажу о такой вещи, как редактирование ресурсов.

aquaratixc

Программист-самоучка и программист-любитель

Добавить комментарий