Автор | Сообщение |
|
| Администратор
|
Пост N: 1932
Зарегистрирован: 23.05.05
|
|
Отправлено: 12.05.11 16:47. Заголовок: minigui.dll
Эта тема еще актуальна ? Поскольку я собираю для себя всякие-разные dll, собрал и minigui.dll с Harbour Есть некоторые особенности, но можно допилить в процессе..
|
|
|
Ответов - 12
[только новые]
|
|
|
| постоянный участник
|
Пост N: 1749
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.05.11 18:44. Заголовок: Pasha пишет: Эта те..
Pasha пишет: Да !!! Очень актуальна !!! Хочу в программе на хХарборе вызывать всякие чекбоксы, окошки для настроек и т.д. То есть можно тогда постепенно переходить на GUI интерфейс. Это будет лучший вариант перехода и наверно интересен будет многим. Pasha пишет: цитата: | собрал и minigui.dll с Harbour |
| Большая просьба сделать и для хХарбора. А то у меня не получилось раньше...
|
|
|
|
| Администратор
|
Пост N: 1933
Зарегистрирован: 23.05.05
|
|
Отправлено: 13.05.11 16:15. Заголовок: Скрипты сборки minig..
Скрипты сборки minigui.dll: http://files.mail.ru/639WEK Для сборки необходимо: 1. Избавиться от ссылок на функции из ct: в hbprinter\winprint добавить функцию вроде Static function hmg_NumAt(cChr, cStr) Local nNum := 0, i := 1, nLen := Len(cStr), nStep := Len(cChr) while i <= nLen if Substr(cStr, i, nStep) == cChr nNum ++ endif i += nStep enddo Return nNum и заменить ею вызов numat она используется еще в одном модуле, так что лучше добавить ее в какой-то модуль h_* В TSBrowse есть вызов FTOC. Добавить подобную функцию прямо в TSBrowse Поскольку ErrorSys() есть уже в harbour.dll, то вызовется именно он, не ErrorSys из HMG Поэтому надо в errorsys.prg сделать: #ifndef HB_DYNLIB PROCEDURE ErrorSys #else PROCEDURE HMG_Init #endif и в hmg-программе в 1-й строке вызывать: HMG_Init() Для добавление TSBrowse в dll (я пока закомментарил) в dll необходимо: 1. убрать GETWINDOWLONG из C_CONTROLMISC1, так как эта функция уже есть в C_WINDOWS 2. DrawCheck в C_TBROWSE сделать static, так как функция с таким именем уже есть в C_MENU 3. Переименоваить GETTEXTHEIGHT в TSBrowse, поскольку функция с таким именем уже есть в C_GETBOX 4. Собрать отдельную dll, содержащую contrib\hbwin, поскольку в TSBrowse есть вызов TOleAuto() из этой библиотеки Сборка с xHarbour. Для этого надо снять комментарий со строки rem goto :xhb и вместо echo %HB_PATH%\lib\harbour-21-bcc.lib + >>hdll.tmp rem echo %HB_PATH%\lib\harbour.lib + >>hdll.tmp поставить rem echo %HB_PATH%\lib\harbour-21-bcc.lib + >>hdll.tmp echo %HB_PATH%\lib\harbour.lib + >>hdll.tmp Но можно ли сейчас собрать hmg под xHarbour ? Я смотрю, из модулей на C исключили #include <windows.h> и эти модули теперь не собираются. Батники надо переписать в Source\ Андрей, я не понял, чем тебе поможет эта dll в переходе на gui. Переход можно выполнять как со статическими библиотеками, так и с динамическими.
|
|
|
|
| постоянный участник
|
Пост N: 1751
Зарегистрирован: 12.09.06
|
|
Отправлено: 13.05.11 18:24. Заголовок: Pasha пишет: Андрей..
Pasha пишет: цитата: | Андрей, я не понял, чем тебе поможет эта dll в переходе на gui. |
| Я хотел бы имея готовую программу, для начала переделать пока простые подменю задачи. Типа чекбоксы настройки программы, справочники или другие второстепенные меню задачи. Т.е. при выборе из терминалки - вызывалось окно МиниГуи.... после завершения возврат обратно в терминалку. Тот же самый принцип как с FastReport. Пока не завершишь его, обратно в терминалку не возвращаешься. Пример на ФастРепорт здесь: http://files.mail.ru/UPWNIL А потом уже можно будет переводить главные Browse и остальное на МиниГуи. Pasha пишет: цитата: | Переход можно выполнять как со статическими библиотеками, так и с динамическими. |
| А более подробней написать можно ? Преимущества того или другого перехода и как делать ?
|
|
|
|
| Администратор
|
Пост N: 1934
Зарегистрирован: 23.05.05
|
|
Отправлено: 13.05.11 19:21. Заголовок: Andrey пишет: А бол..
Andrey пишет: цитата: | А более подробней написать можно ? Преимущества того или другого перехода и как делать ? |
| Я как-то затрудняюсь ответить на этот вопрос. Переход один, это способ сборки программы разный. А преимушества - так это дело вкуса. Кому-то нравится делать один большой exe, кому-то - маленький exe с dll. Да и в поставке minigui пока сборки в режиме dll нет, но ее можно сделать. Я подсказываю как.
|
|
|
|
| |
Пост N: 33
Зарегистрирован: 03.01.10
|
|
Отправлено: 25.05.11 18:06. Заголовок: Pasha пишет: Поскол..
Pasha пишет: цитата: | Поскольку я собираю для себя всякие-разные dll, собрал и minigui.dll с Harbour Есть некоторые особенности, но можно допилить в процессе.. |
| Вот такая задачка для знатоков создания dll (это скоее всего к Павлу) ,которую пока так и не решил. -Harbour 2.1 15428 2010-09-02 -Терминал gtWVT -сборка hbmk2 -компилятор C bcc 1) при сборке ошибка головной программы Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Error: Unresolved external '_hb_winmainArgInit' referenced from D:\APP\GTWIN_1\HBMAINWIN.LIB|mainwin 2) если пристыковать hbwmain.c выдает Warning W8065 maincode.prg 110: Call to function 'main' with no prototype in function WinMain но exe при запуске пишет Unrecoverable error 10001: It's not a GUI program 3) если поменять REQUEST HB_GT_WVT_DEFAULT на REQUEST HB_GT_WIN_DEFAULT все работает и функции dll то же но в GTWIN терминале Что может быть: ошибка hbmk2 ? bcc не той версии ? Терминал gtWVT не работает c dll ? глюк harbour? об этом что-то писали Przemyslaw Czerpak и Viktor Szakats, но не конкретно ниже простой тестовый пример : /* Головная программа */ REQUEST HB_GT_WVT REQUEST HB_GT_WIN REQUEST HB_GT_WVT_DEFAULT Proc maincode() ? 'start' my_proc() ? 'end' ? "" WAIT Return /* программа Dll */ Procedure MY_PROC() ? PROCNAME() + ":hello !!!" MyDial() return init procedure start ? "Init PROC", PROCNAME() return exit procedure end ? "EXIT PROC", PROCNAME() return Procedure Mydial() ? "In DLL" Return сборка hbmk2 - dll ************************** -std #-mt -gtwvt -strip -shared -compiler=bcc -hbdyn -implib=dllcode -cflag=-DHB_DYNLIB -odllcode -LC:\hb21\lib\win\bcc\ -ldllcode -lhbmaindllp dllcode.prg сборка hbmk2 - maincode ********************* #------ hbc parameters -std # -mt -gtwvt -shared -strip -compiler=bcc -cflag=-w-8075 -DHB_DYNLIB -omaincode -L. -LC:\hb21\lib\win\bcc\ -ldllcode # -lharbour-21-bcc maincode.prg
|
|
|
|
| Администратор
|
Пост N: 1947
Зарегистрирован: 23.05.05
|
|
Отправлено: 26.05.11 07:47. Заголовок: Я собираю свои прогр..
Я собираю свои программы, использующие harbour.dll, тоже с двумя терминалами, но по умолчанию использую REQUEST HB_GT_WIN_DEFAULT сейчас поменял на REQUEST HB_GT_WVT_DEFAULT Программа собралась, и при запуске используется gtwvt Параметры сборки: echo %BCC_DIR%\lib\c0w32.obj + > b32.bc echo %OBJ_DIR%\%1.obj + >> b32.bc echo ,%EXE_NAME%, + >> b32.bc echo %MAIN%.map, + >> b32.bc echo %HB_INSTALL%\lib\harbour-21-bcc.lib + >> b32.bc echo %HB_INSTALL%\lib\hbmainstd.lib + >> b32.bc echo %HB_INSTALL%\lib\hbmainwin.lib + >> b32.bc echo %HB_INSTALL%\lib\gtwvg.lib + >> b32.bc echo %BCC_DIR%\lib\cw32.lib + >> b32.bc echo %BCC_DIR%\lib\import32.lib, >> b32.bc %BCC_DIR%\bin\ilink32 -Gn -Tpe -L%BCC_DIR%\lib @b32.bc
|
|
|
|
| постоянный участник
|
Пост N: 1769
Зарегистрирован: 12.09.06
|
|
Отправлено: 26.05.11 13:42. Заголовок: Pasha А можешь ли с..
Pasha А можешь ли собрать пример для хХарбора 1.2 с вызовом окна Минигуи из minigui.dll Не хочется биться об стенку, навыков все таки нет... Это не срочно, как время у тебя будет. Хотя по себе знаю, что очень трудно найти свободное время. Заранее благодарю. Спасибо.
|
|
|
|
| Администратор
|
Пост N: 1948
Зарегистрирован: 23.05.05
|
|
Отправлено: 26.05.11 15:59. Заголовок: Andrey пишет: А мож..
Andrey пишет: цитата: | А можешь ли собрать пример для хХарбора 1.2 с вызовом окна Минигуи из minigui.dll |
| Да без проблем. Только давай сверим часы версии продуктов. Если я соберу dll для другой версии харбора, у тебя она работать не будет. Итак, какая у тебя версия (Changelog) xHarbour и какая версия hmg ?
|
|
|
|
| постоянный участник
|
Пост N: 1770
Зарегистрирован: 12.09.06
|
|
Отправлено: 26.05.11 18:38. Заголовок: Pasha пишет: Итак, ..
Pasha пишет: цитата: | Итак, какая у тебя версия (Changelog) xHarbour и какая версия hmg ? |
| xHarbour Compiler build 1.2.1 (SimpLex) (Rev. 6406) Harbour MiniGUI 1.9 Extended Edition (Build 95) - 2011.04.12 Только все файлы сборки DLL и прог тоже покажи пожалуйста.
|
|
|
|
| |
Пост N: 34
Зарегистрирован: 03.01.10
|
|
Отправлено: 27.05.11 22:20. Заголовок: Andrey пишет: Тольк..
Andrey пишет: цитата: | Только все файлы сборки DLL и прог тоже покажи пожалуйста. |
|
. Согласен. Но и для Нarbour то же. И в догонку. Собирать все-таки не через hbmk2 или это дело привычки
|
|
|
|
| постоянный участник
|
Пост N: 2058
Зарегистрирован: 12.09.06
|
|
Отправлено: 21.02.12 20:22. Заголовок: Pasha пишет: Да без..
Pasha пишет: цитата: | Да без проблем. Только давай сверим часы версии продуктов. Если я соберу dll для другой версии харбора, у тебя она работать не будет. Итак, какая у тебя версия (Changelog) xHarbour и какая версия hmg ? |
| Паша, если можешь (время есть) то хотелось бы пример сборки. xHarbour Compiler build 1.2.1 (SimpLex) (Rev. 6406) Harbour MiniGUI Extended Edition 2.0.7 - 2012.02.14
|
|
|
|
|
| постоянный участник
|
Пост N: 299
Зарегистрирован: 13.10.05
|
|
Отправлено: 22.02.12 12:04. Заголовок: Паша. А задача наобо..
Паша. А задача наоборот - в MiniGUI вставить Brows от консоли . Возможно ли?
|
|
|
|