On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
постоянный участник


Пост N: 515
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 09.10.08 21:52. Заголовок: MiniGUI & dll


Собственно два вопроса
1) Есть ли у кого опыт использования MiniGUI + harbour.dll?
2) Кто-нибудь пробовал "засунуть" MiniGUI в dll?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 8 [только новые]


Администратор




Пост N: 999
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 09.10.08 22:49. Заголовок: В прошлом году я соб..


В прошлом году я собирал minigui.dll. Но только под xHarbour, с Harbour по непонятным причинам программа, использующая minigui.dll, не работала
Помнится, мы с Григорием это тогда обсуждали

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 516
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 09.10.08 23:06. Заголовок: Pasha пишет: Помнит..


Pasha пишет:

 цитата:
Помнится, мы с Григорием это тогда обсуждали



Припоминаю, что где-то видел, но не могу найти.

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1001
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 10.10.08 08:43. Заголовок: Это, оказывается, бы..


Это, оказывается, было еще в конце 2006-го

Скрипт сборки ниже, хотя с тех пор добавились еще какие-то модули
Может быть, будут unresolved externals, от них надо избавиться

Особонности такие. При сборке harbour.dll в модуле source\rtl\errorsys.prg надо после #include вставить строки:

#ifdef __EXPORT__

PROCEDURE ErrorSys

Errorblock( &( '{|oError| ERRORPROC(oError)}' ) )

Return

#else
...
#endif

ErrorProc - обработчик ошибок minigui

И сама сборка:

@echo off
cls

IF "%mg_bcc%"=="" SET MG_BCC=d:\bcc55
IF "%mg_root%"=="" SET MG_ROOT=d:\minigui
IF "%mg_hrb%"=="" SET MG_HRB=e:\xharbour

SET CLIBFLAGS= -tW -DHB_FM_STATISTICS_OFF -D__WIN32__ -D__EXPORT__ -a8 -OS -O2 -6 -c -I%mg_hrb%\include;%mg_bcc%\include; -d -w3 -DSIMPLEX

IF EXIST %mg_root%\lib\minigui.lib del %mg_root%\lib\minigui.lib

rem goto :link

rem goto :noprint

%mg_hrb%\bin\harbour hbprinter\winprint -i%mg_hrb%\include;%mg_root%\include; -l -n1 -w2 -gc0 -es2 -D__EXPORT__
%mg_hrb%\bin\harbour miniprint\h_miniprint -i%mg_hrb%\include;%mg_root%\include; -l -n1 -w2 -gc0 -es2 -D__EXPORT__

%mg_bcc%\bin\bcc32 %CLIBFLAGS% winprint.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_miniprint.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% miniprint\c_miniprint.c

:noprint

%mg_hrb%\bin\harbour h_browse h_scrsaver h_error.prg h_ipaddress.prg h_monthcal.prg h_help.prg h_crypt.prg h_status.prg h_tree.prg h_toolbar.prg errorsys.prg h_init.prg h_media.prg h_winapimisc.prg h_slider.prg h_button.prg h_checkbox.prg h_combo.prg h_controlmisc.prg h_datepicker.prg h_editbox.prg h_dialogs.prg h_grid.prg h_windows.prg h_windowsmdi.prg h_image.prg h_imagelist.prg h_label.prg h_listbox.prg h_menu.prg h_msgbox.prg h_frame.prg h_progressbar.prg h_radio.prg h_spinner.prg h_tab.prg h_textbox.prg h_timer.prg h_cursor.prg h_ini.prg h_report.prg h_registry.prg h_font.prg h_hyperlink.prg h_hotkey.prg h_graph.prg h_dialog.prg h_richeditbox.prg h_edit.prg h_edit_ex.prg h_winprop.prg h_socket.prg h_getbox.prg -i%mg_hrb%\include;%mg_root%\include; -l -n1 -w2 -gc0 -es2 -D__EXPORT__

%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_scrsaver.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_edit.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_edit_ex.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_error.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_ipaddress.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_ipaddress.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_monthcal.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_monthcal.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_help.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_help.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_crypt.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_crypt.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_status.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_status.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_tree.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_tree.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_toolbar.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_toolbar.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% errorsys.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_init.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_media.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_media.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_winapimisc.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_slider.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_button.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_checkbox.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_combo.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_controlmisc.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_datepicker.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_resource.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_cursor.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_cursor.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_ini.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_ini.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_report.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_registry.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_font.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_font.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_hyperlink.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_hyperlink.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_richeditbox.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_richeditbox.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_bitmap.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_dialog.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_imagelist.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_imagelist.c

%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_winxp.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_editbox.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_dialogs.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_grid.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_windows.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_windowsmdi.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_image.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_label.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_listbox.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_menu.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_msgbox.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_frame.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_progressbar.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_radio.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_registry.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_slider.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_spinner.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_tab.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_textbox.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_timer.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_winapimisc.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_button.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_checkbox.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_combo.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_controlmisc.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_datepicker.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_editbox.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_dialogs.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_grid.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_windows.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_windowsmdi.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_image.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_label.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_listbox.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_menu.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_msgbox.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_frame.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_progressbar.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_radio.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_spinner.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_tab.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_textbox.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_timer.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_scrsaver.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_hotkey.c

%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_hotkey.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_graph.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_graph.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_browse.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_browse.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_socket.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_dialog.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_winprop.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_winprop.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% h_getbox.c
%mg_bcc%\bin\bcc32 %CLIBFLAGS% c_getbox.c

rem %mg_bcc%\bin\tlib /P32 %mg_root%\lib\minigui +h_scrsaver.obj +h_edit.obj +h_edit_ex.obj +h_error.obj +h_ipaddress.obj +c_ipaddress.obj +h_monthcal.obj +c_monthcal.obj +h_help.obj +c_help.obj +h_status.obj +c_status.obj +h_tree.obj +c_tree.obj +h_toolbar.obj +c_toolbar.obj +errorsys.obj +h_init.obj +h_media.obj + c_media.obj +c_resource.obj +h_cursor.obj +c_cursor.obj +h_ini.obj +c_ini.obj +h_report.obj +h_font.obj +c_font.obj +c_hyperlink.obj +h_hyperlink.obj +c_scrsaver.obj +h_hotkey.obj +c_hotkey.obj +h_graph.obj +c_graph.obj +h_richeditbox.obj +c_richeditbox.obj +h_browse.obj +c_browse.obj +h_socket.obj +c_bitmap.obj +c_imagelist.obj +h_imagelist.obj +c_winxp.obj
rem %mg_bcc%\bin\tlib /P32 %mg_root%\lib\minigui +c_crypt.obj +h_crypt.obj +h_winapimisc.obj +h_slider.obj +c_button.obj +c_checkbox.obj +c_combo.obj +c_controlmisc.obj +c_datepicker.obj +c_editbox.obj +c_dialogs.obj +c_grid.obj +c_windows.obj +c_windowsmdi.obj +c_image.obj +c_label.obj +c_listbox.obj +c_menu.obj +c_msgbox.obj +c_frame.obj +c_progressbar.obj +c_radio.obj +c_registry.obj +c_slider.obj +c_spinner.obj +c_tab.obj +c_textbox.obj +c_timer.obj +c_dialog.obj+c_winapimisc +h_button.obj +h_checkbox.obj +h_combo.obj +h_controlmisc.obj +h_datepicker.obj +h_editbox.obj +h_dialogs.obj +h_grid.obj +h_windows.obj +h_windowsmdi.obj +h_image.obj +h_label.obj +h_listbox.obj
rem %mg_bcc%\bin\tlib /P32 %mg_root%\lib\minigui +h_menu.obj +h_msgbox.obj +h_frame.obj +h_progressbar.obj +h_radio.obj +h_spinner.obj +h_tab.obj +h_textbox.obj +h_timer.obj +h_registry.obj +h_dialog.obj +h_winprop.obj +c_winprop.obj +h_getbox.obj +c_getbox.obj

:link

ILINK32 -aa -Tpd -Gn @minidll.lnk >minidll.err
implib minigui.lib minigui.dll

rem IF EXIST %mg_root%\lib\minigui.bak del %mg_root%\lib\minigui.bak

rem del *.obj
rem del h_*.c
del errorsys.c

SET MG_BCC=
SET MG_HRB=
SET MG_ROOT=


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 518
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 10.10.08 13:07. Заголовок: Спасибо, Pasha! Собс..


Спасибо, Pasha!
Собственно меня интересует как это работает и нет ли каких глюков, что с быстродействием? Есть ли у тебя негативный опыт, впечатления при использовании harbour.dll?


Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1002
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 10.10.08 15:03. Заголовок: Никакого негативного..


Никакого негативного опыта. Собираю свои программы уже более 2-х лет только с harbour.dll, отдельной dll со своей библиотекой, и еще создаю несколько отдельных dll: ads, leto, freeimage
exe-модули содержат только непосредственный код программы
Только надо следить, чтобы имена функций в exe случайно не совпали с какой-либо функцией в одной из dll, тогда будут коллизии
По быстродействию: по тестам я разницы не видел по сравнению со сборкой без dll. Только начальная загрузка программы выполняется чуть медленнее.

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1003
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 10.10.08 15:31. Заголовок: Еще маленький ньюанс..


Еще маленький ньюанс. Свою dll я создаю командой implib с флажком -f, поскольку я ее обновляю. При этом нет необходимости пересобирать exe-программы при изменении такой dll.


Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1010
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 22.10.08 12:57. Заголовок: Петр, получилось соб..


Петр, получилось собрать minigui.dll под Harbour ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 558
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 22.10.08 13:27. Заголовок: Я еще не собирал, по..


Я еще не собирал, поскольку дела не позволяли. А у меня идея к тому же возникла разделить MiniGUI на две части, pcode и pure C. Нужно все хорошенько обдумать и проанализировать.
Как только получу какой-нибудь результат, а думаю он буде позитивным, отпишусь.


Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 29
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет