Форум » [x]Harbour » Переход на версию xHarbour 1.2 + GTWVT-терминал ? » Ответить

Переход на версию xHarbour 1.2 + GTWVT-терминал ?

Andrey: Всем привет. Пытаюсть прейти с версии 1.0 на 1.2 ! Собираю GTWVT-терминалку. Пишет ошибку: HbMake v1.20 - xHarbour Make Utility Copyright (C) 2000-2009 xHarbour project -http://www.xharbour.org xHarbour build 1.2.1 Intl. (SimpLex) (Rev. 6406) / Borland C++ 5.5.1 (32 bit) Z:\BCC55\BIN\ilink32 @makefile.lnk Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Error: Unresolved external '_HB_FUN_HB_CODEPAGE_RU1251' referenced from G:\@MAIL\MY-ALL\╤╚ ─╬╨╬┬ └╦┼╩╤└═─╨\GTWVT-CHOICE\OBJ\MAINTO.OBJ Error: Unresolved external '_HB_FUN_GTINFO' referenced from G:\@MAIL\MY-ALL\╤╚─╬╨╬┬ └╦┼╩╤└ ═─╨\GTWVT-CHOICE\OBJ\MAINTO.OBJ Файл сборки делал через hbmake.exe - новой версии. В списах библиотеки присутсвуют: lang.lib codepage.lib gtwvt.lib gtwvg.lib Я так понимаю функции GTINFO в версии 1.2 уже нет. Какой можно заменить ? А куда делась функция CODEPAGE_RU1251 ?

Ответов - 72, стр: 1 2 3 4 All

Andrey: AlexMyr пишет: Изучаем harbour\doc\xhb-diff.txt Спасибо за "палцем тык" !

Andrey: Вопрос насчет GTWIN-терминала в Harbour 3.1.0dev (Rev. 17403). Делаю следующее: FUNCTION Main() ............. QUIT RETURN NIL *-----------------------------------------------------------------------------* INIT PROCEDURE Init() PUBLIC hHendlWindowsMain RETURN EXIT PROCEDURE Exit() ? M->hHendlWindowsMain wait " хочу посмотреть" RETURN Функция EXIT PROCEDURE Exit() после завершения программы отрабатывает, а если завершаешь программу по [x] - то нет ! Почему не отрабатывает [x] ?

Andrey: Подскажите как для терминала xHarbour 1.2.1 добавить вызов 3-х внешних функций ? Т.е. я хочу в сам терминал встроить настройку экрана: палитры, фонтов и размеров. Пере-собрать сам терминал и добавить свои функции, это я понимаю. А как быть с вызовами на С ? Я сам не сишник.... Нашел где это нужно вставить, а как дальше делать не знаю. Кто может помочь ? Папка :\xHarbour\contrib\gtwvg - файл gtwvg.c Строка 35 pWVT->pszSelectCopy = hb_strdup( "Mark and Copy" );


Andrey: Всем привет. Выношу на ваше обсуждение: GTWVT-терминал "Настройка палитры/шрифтов/размеров экрана" for xHarbour 1.2 ! Можно в диалоговом режиме задавать, рассчитано на пользователя. При первоначальном запуске (без файла конфига - ИмяФайлаЕхе.gtwvt) программа сама установит экран 80х25 на максимальный размер шрифта. Потом можно убавить размер шрифта и задавать разрешение экрана типа 110х33 и т.д. а потом подбирать размер шрифта. Пробуйте и используйте у себя. Для включения в свой проект нужно просто добавить 2 файла: setfont.prg и setpallet.PRG А из файла mainto.prg добавит ИНИЦИАЛИЗАЦИЮ gtwvt-терминала, со строки: INIT FUNCTION AppSetup() и до конца файла. Инициализация палитры/шрифтов/размеров экрана происходит через файл конфига - ИмяФайлаЕхе.gtwvt, если он есть. Вызов настроек в функции MAIN(). Он небольшой. Исправления и пожелания приветствуются. http://files.mail.ru/9SYDUR P.S. Как восстанавливать картинку (после того как окно сворачиваешь на панель задач) я так и не смог сделать !

Avf: Hi, Andrey! Хочу что-то похожее сделать в Harbour. Есть различия ( в Harbour по-моему нету IN и т.п.). При трансляции Вашего примера : Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland obj\setfont.c: Error E2451 SETFONT.PRG 827: Undefined symbol 'HB_ITEM' in function FontEnumCallBack Error E2379 SETFONT.PRG 827: Statement missing ; in function FontEnumCallBack Error E2451 SETFONT.PRG 829: Undefined symbol 'SubItems' in function FontEnumCallBack Error E2451 SETFONT.PRG 848: Undefined symbol 'HB_ITEM' in function HB_FUN_ENUMFONTS Error E2379 SETFONT.PRG 848: Statement missing ; in function HB_FUN_ENUMFONTS Error E2451 SETFONT.PRG 850: Undefined symbol 'Array' in function HB_FUN_ENUMFONTS *** 6 errors in Compile *** Не понимаю о чем речь,т.к. просто понадобилось перевести одну из задач Clipper в Console режим harbour и, мне показался интересным Ваш подход. Я не занимался (x)Harbour, только Minigui сразу и уже давно. Для сборки использую Mpm. Может быть что-то упустил.

Andrey: Avf пишет: При трансляции Вашего примера : Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland obj\setfont.c: Error E2451 SETFONT.PRG 827: Undefined symbol 'HB_ITEM' in function FontEnumCallBack Error E2379 SETFONT.PRG 827: Statement missing ; in function FontEnumCallBack Error E2451 SETFONT.PRG 829: Undefined symbol 'SubItems' in function FontEnumCallBack Error E2451 SETFONT.PRG 848: Undefined symbol 'HB_ITEM' in function HB_FUN_ENUMFONTS Error E2379 SETFONT.PRG 848: Statement missing ; in function HB_FUN_ENUMFONTS Error E2451 SETFONT.PRG 850: Undefined symbol 'Array' in function HB_FUN_ENUMFONTS *** 6 errors in Compile *** Я тоже не знаю как эту функцию на С переделать под Харбор. Нужно просить наших ГУРУ на форуме, чтобы помогли... Я думаю очень многим понравиться (кто работает с терминалками) встроенная возможность переключения шрифтов в своей задаче. Может быть нужно и отправить этот пример в contrib на Харбор/хХарбор. Исходник здесь. http://files.mail.ru/8UFH3H

alkresin: С этой функцией проблем нет, надо сделать так: static int CALLBACK FontEnumCallBack(LOGFONT *lplf, TEXTMETRIC *lpntm, DWORD FontType, LPVOID pArray ) { PHB_ITEM pSubItems = hb_itemNew(NULL); hb_arrayNew( pSubItems, 4 ); hb_arraySetC( pSubItems, 1, lplf->lfFaceName ); hb_arraySetL( pSubItems, 2, lplf->lfPitchAndFamily & FIXED_PITCH ); hb_arraySetL( pSubItems, 3, FontType && TRUETYPE_FONTTYPE ); hb_arraySetNL( pSubItems, 4, lpntm->tmCharSet ); hb_arrayAddForward( (PHB_ITEM) pArray, pSubItems); hb_itemRelease( pSubItems ); return(TRUE); } HB_FUNC_STATIC( ENUMFONTS ) { BOOL Result = FALSE ; HDC hDC = (HDC) hb_parnl(1) ; if (hDC) { PHB_ITEM pArray = hb_itemNew(NULL); hb_arrayNew( pArray, 0 ); EnumFonts(hDC, (LPCTSTR) NULL, (FONTENUMPROC) FontEnumCallBack, (LPARAM) pArray); hb_itemReturnForward( pArray) ; hb_itemRelease( pArray ); Result = TRUE ; } if( !Result ) { hb_ret() ; } } А вот дальше там набор неразрешенных ссылок - функции, которые в Harbour по другому называются. Чтобы разрешить WVT_... надо прилинковать gtwvg, с остальными надо разбираться. Может, будет работать.

Andrey: Avf пишет: Хочу что-то похожее сделать в Harbour. Результатом поделись...

Avf: Под Harbour пример выдает ошибку выполнения Exception Code:C0000005 на WVT_GETFONTINFO. http://files.mail.ru/VI20QX

Andrey: Будет выдавать ошибку. Я переделал ряд функций, до конца сделать не успел. Остались функции записи в ини-файл: Error: Unresolved external '_HB_FUN_HASH' Error: Unresolved external '_HB_FUN_HB_READINI' Error: Unresolved external '_HB_FUN_HB_WRITEINI' Нужно эти функции переписать с хХарбора на Харбор. Смотри пример \hb31\tests\parseini.prg Мой исправленный исходник для Харбора здесь. http://files.mail.ru/04YV06 Я пошел спать...

alkresin: Error: Unresolved external '_HB_FUN_HASH' Error: Unresolved external '_HB_FUN_HB_READINI' Error: Unresolved external '_HB_FUN_HB_WRITEINI' hash => hb_hash hb_readini => hb_iniRead hb_writeini => hb_iniWrite

Andrey: Собрал на Харборе 3.0 Не запускается, в логе hb_out.log пишет: Application Internal Error - G:\GTWVT-ChoiceFont-Harbour\gtwvt-ChoiceFont-Harbour.exe Terminated at: 2012.12.21 11:00:37 Unrecoverable error 10001: It's not a GUI program Я не знаю как дальше делать. На Харборе собирал только примеры. Исходник и файл сборки (может неправильно сделал) здесь. http://files.mail.ru/2JICZA

alkresin: Создайте еще файл gtwvt-choiceFont.hbc с одной строчкой: gui=yes - и программа будет запускаться, только не спрашивайте, почему :). Я в этих hbc, hbm и пр. не разбирался и пока не собираюсь, решение это нашел в contribs/gtwvg/tests.

alkresin: И еще, я увидел что вы заменили xHarbor'овский IN на вызов Ascan() - это неправильно. Ascan() не работает с хэш-массивами. IN надо заменить на $: IF ( cSection $ aIni )

Andrey: Нет, не работает... Собирается нормально.... Harbour 3.0.0 (Rev. 16951) 12:31 Copyright (c) 1999-2011, http://harbour-project.org/ Compiling 'mainto-Harb.prg'... Lines 3451, Functions/Procedures 6 Generating C source output to 'OBJ\mainto-Harb.c'... Done. Compiling 'setfont.prg'... Lines 1479, Functions/Procedures 14 Generating C source output to 'OBJ\setfont.c'... Done. Compiling 'setpallet.PRG'... Lines 865, Functions/Procedures 16 Generating C source output to 'OBJ\setpallet.c'... Done. hbmk2: Compiling resources... Borland Resource Compiler Version 5.40 Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. hbmk2: Compiling... OBJ\mainto-Harb.c: OBJ\setfont.c: Warning W8004 setfont.prg 872: 'Result' is assigned a value that is never used in function HB_FUN_CREATE1DC OBJ\setpallet.c: OBJ\_hbmkaut_mainto-Harb.c: hbmk2: Linking... gtwvt-ChoiceFont-Harbour.exe Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland А ошибка та же: Application Internal Error - G:\GTWVT-ChoiceFont-Harbour\gtwvt-ChoiceFont-Harbour.exe Terminated at: 2012.12.21 12:32:54 Unrecoverable error 10001: It's not a GUI program Все таки с хХарбором легче работать.... Народ, кто работает на Харборе, дайте пожалуйста рабочий GTWVT-терминал ! Заранее спасибо !

alkresin: Ваш протокол сборки ни о чем не говорит, надо hbmk2 с ключом -trace запускать, тогда видно, с какими параметрами компилятор и линкер запускались. Можете воспользоваться bat'ником: @set HB_INSTALL=c:\harbour %HB_INSTALL%\bin\harbour mainto-Harb.prg SETFONT.PRG setpallet.PRG -n -i%HB_INSTALL%\include -i%HB_INSTALL%\contrib\gtwvg bcc32 -O2 -tW -I%HB_INSTALL%\include -L%HB_INSTALL%\lib\win\bcc hbdebug.lib hbvm.lib hbrtl.lib gtwvg.lib gtwvt.lib hblang.lib hbrdd.lib hbmacro.lib hbpp.lib rddntx.lib rddcdx.lib rddfpt.lib hbsix.lib hbcommon.lib hbcpage.lib hbpcre.lib hbwin.lib hbct.lib mainto-Harb.c SETFONT.c setpallet.c del *.c del *.obj del *.tds И в mainto-Harb.prg надо вставить ANNOUNCE HB_GTSYS, чтобы gtwin не требовало. У меня все работает.

Andrey: alkresin пишет: надо hbmk2 с ключом -trace запускать :\HB31\include "OBJ\mainto-Harb.c" OBJ\setfont.c OBJ\setpallet.c "OBJ\_hbmkaut_mainto15:14 .c" OBJ\mainto-Harb.c: OBJ\setfont.c: Warning W8004 setfont.prg 872: 'Result' is assigned a value that is never used in function HB_FUN_CREATE1DC OBJ\setpallet.c: OBJ\_hbmkaut_mainto-Harb.c: hbmk2: Linking... gtwvt-ChoiceFont-Harbour.exe hbmk2: Linker command: ilink32.exe @C:\Users\Andrey\AppData\Local\Temp\xwf2bj.lnk hbmk2: Linker script: -Gn -Tpe -LZ:\BCC55\Lib;Z:\BCC55\Lib\PSDK;z:\HB31\lib\win\bcc;z:\HB31\bin;Z:\hb31\lib\win\ bcc -ap c0x32.obj "OBJ\mainto-Harb.obj" OBJ\setfont.obj OBJ\setpallet.obj "OBJ\_hbmkaut_m ainto-Harb.obj", "gtwvt-ChoiceFont-Harbour.exe", nul, gtwvg.lib Z:\hb31\lib\win\bcc\hbct.l ib hbextern.lib hbdebug.lib hbvmmt.lib hbrtl.lib hblang.lib hbcpage.lib gtcgi.lib gtpca.li b gtstd.lib gtwin.lib gtwvt.lib gtgui.lib hbrdd.lib hbuddall.lib hbusrrdd.lib rddntx.lib r ddcdx.lib rddnsx.lib rddfpt.lib hbrdd.lib hbhsx.lib hbsix.lib hbmacro.lib hbcplr.lib hbpp. lib hbcommon.lib kernel32.lib user32.lib gdi32.lib advapi32.lib ws2_32.lib winspool.lib co mctl32.lib comdlg32.lib shell32.lib uuid.lib ole32.lib oleaut32.lib mpr.lib winmm.lib mapi 32.lib imm32.lib msimg32.lib wininet.lib hbpcre.lib hbzlib.lib cw32mt.lib import32.lib, , "OBJ\gtwvt-choice.res" Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Ни фига не понятно.... В хХарборе намного все проще ! Видать переход на Харбор будет ОЧЕЕЕНЬ сложным.... У меня тоже почти заработало (правда менюшки не работают вообще )... Первый запуск программы на весь экран : Второй запуск - одни кракозябы: Радует только одно - картинка на форме, после сворачивания не пропадает !

Dima: Andrey пишет: Радует только одно - картинка на форме, после сворачивания не пропадает а вот с этого места поподробнее пожалуйста ;) тестовый не большой пример выложи сюда.

Andrey: Вот пример. http://files.mail.ru/SFCN9A Бат-ник собирает рабочий пример. gtwvt-choiceFont.hbp - не собирает....

Dima: Andrey Взял готовый EXE. При сворачивании картинка на месте а вот если окно подвигать туда сюда , картинка исчезает.



полная версия страницы