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




Пост N: 1932
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 12.05.11 16:47. Заголовок: minigui.dll


Эта тема еще актуальна ?
Поскольку я собираю для себя всякие-разные dll, собрал и minigui.dll с Harbour
Есть некоторые особенности, но можно допилить в процессе..

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


постоянный участник




Пост N: 1749
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.05.11 18:44. Заголовок: Pasha пишет: Эта те..


Pasha пишет:

 цитата:
Эта тема еще актуальна ?


Да !!! Очень актуальна !!!
Хочу в программе на хХарборе вызывать всякие чекбоксы, окошки для настроек и т.д.
То есть можно тогда постепенно переходить на GUI интерфейс. Это будет лучший вариант перехода и наверно интересен будет многим.
Pasha пишет:

 цитата:
собрал и minigui.dll с Harbour


Большая просьба сделать и для хХарбора. А то у меня не получилось раньше...

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




Пост 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. Переход можно выполнять как со статическими библиотеками, так и с динамическими.


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




Пост N: 1751
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.05.11 18:24. Заголовок: Pasha пишет: Андрей..


Pasha пишет:

 цитата:
Андрей, я не понял, чем тебе поможет эта dll в переходе на gui.


Я хотел бы имея готовую программу, для начала переделать пока простые подменю задачи.
Типа чекбоксы настройки программы, справочники или другие второстепенные меню задачи.
Т.е. при выборе из терминалки - вызывалось окно МиниГуи.... после завершения возврат обратно в терминалку.
Тот же самый принцип как с FastReport. Пока не завершишь его, обратно в терминалку не возвращаешься.
Пример на ФастРепорт здесь:http://files.mail.ru/UPWNIL

А потом уже можно будет переводить главные Browse и остальное на МиниГуи.

Pasha пишет:

 цитата:
Переход можно выполнять как со статическими библиотеками, так и с динамическими.


А более подробней написать можно ? Преимущества того или другого перехода и как делать ?



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




Пост N: 1934
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 13.05.11 19:21. Заголовок: Andrey пишет: А бол..


Andrey пишет:

 цитата:
А более подробней написать можно ? Преимущества того или другого перехода и как делать ?



Я как-то затрудняюсь ответить на этот вопрос. Переход один, это способ сборки программы разный. А преимушества - так это дело вкуса. Кому-то нравится делать один большой exe, кому-то - маленький exe с dll. Да и в поставке minigui пока сборки в режиме dll нет, но ее можно сделать. Я подсказываю как.

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



Пост 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





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




Пост 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



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




Пост N: 1769
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.05.11 13:42. Заголовок: Pasha А можешь ли с..


Pasha
А можешь ли собрать пример для хХарбора 1.2 с вызовом окна Минигуи из minigui.dll
Не хочется биться об стенку, навыков все таки нет...

Это не срочно, как время у тебя будет. Хотя по себе знаю, что очень трудно найти свободное время.
Заранее благодарю. Спасибо.

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




Пост N: 1948
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 26.05.11 15:59. Заголовок: Andrey пишет: А мож..


Andrey пишет:

 цитата:
А можешь ли собрать пример для хХарбора 1.2 с вызовом окна Минигуи из minigui.dll



Да без проблем.
Только давай сверим часы версии продуктов. Если я соберу dll для другой версии харбора, у тебя она работать не будет.
Итак, какая у тебя версия (Changelog) xHarbour и какая версия hmg ?

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




Пост 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 и прог тоже покажи пожалуйста.

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



Пост N: 34
Зарегистрирован: 03.01.10
ссылка на сообщение  Отправлено: 27.05.11 22:20. Заголовок: Andrey пишет: Тольк..


Andrey пишет:

 цитата:
Только все файлы сборки DLL и прог тоже покажи пожалуйста.

.
Согласен. Но и для Нarbour то же. И в догонку. Собирать все-таки не через hbmk2 или это дело привычки

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




Пост 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


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


Пост N: 299
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 22.02.12 12:04. Заголовок: Паша. А задача наобо..


Паша. А задача наоборот - в MiniGUI вставить Brows от консоли . Возможно ли?

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

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