On-line: Andrey, PSP, гостей 1. Всего: 3 [подробнее..]
АвторСообщение



Пост N: 1
Зарегистрирован: 10.02.08
ссылка на сообщение  Отправлено: 10.02.08 20:36. Заголовок: Хочу попробовать на Harbour/xHarbour


В 90-х годах писал на Clipper 5.1 и вот уже лет 10 не пишу. Встретил людей, для которых
когда-то сделал одну прогу, которая до сих пор пашет. Они просят переписать (и дополнить) её под Win XP. Я им ничего конкретного не пообещал. Сказал, что многое уже
подзабыл и для освоения (профессионально) нового яз-а пограм-я нужно время. «Ты подумай, мы тебя не торопим» - сказали они мне и на этом мы расстались.
Та случайная встреча и знакомство с вашим сайтом разбудили во мне желание вновь писать (или хотя бы переписать старые) программы. Я думаю, в моём положении, Harbour/xHarbour это то, что даст вторую жизнь моим старым программам. Благо исходники сохранились.
После столь долгого перерыва в программировании прошу вашей помощи. Не откажите.
Не судите строго за глупые вопросы.

И так. Это мой старый bat-файл:
@echo off
set path=c:\clip5\bin
set lib=c:\clip5\lib
set include=c:\clip5\include
set obj=c:\clip5\obj
clipper a_1 /n /a /b
clipper a_2 /n /a /b
if not errorlevel 1 rtlink file a_1.obj,a_2.obj,dbfsix.obj output p_1 library dbfsix,clipper,ct150
del *.obj
____________________________

А вот что такое а_1 и а_2
a_1.prg
#include "dbfsix2.ch"
PROCEDURE MAIN1()
SetRDD("DBFSIX")
mai1()
RETURN
#include "мой.ch"
#include "PROG_01.PRG" => mai1()
#include "PROG_02.PRG"
.
.
.
#include "PROG_25.PRG"


a_2.prg
#include "dbfsix2.ch"
PROCEDURE MAIN2()
SetRDD("DBFSIX")
mai2()
return NIL
#include "PROG_26.PRG" => mai2()
#include "PROG_27.PRG"
.
.
.

#include "PROG_50.PRG"


А это bat-файл для Harbour:

set HB_BIN_INSTALL=d:\harbour\bin
set HB_LIB_INSTALL=d:\harbour\lib\
set HB_INC_INSTALL=d:\harbour\include\

%HB_BIN_INSTALL%\harbour aer_1.prg -n -i%HB_INC_INSTALL%
%HB_BIN_INSTALL%\harbour aer_2.prg -n -i%HB_INC_INSTALL%


d:\borland\bcc55\bin\bcc32 -O2 -d -I%HB_INC_INSTALL% -L%HB_LIB_INSTALL% aer_1.c aer_2.c debug.lib vm.lib rtl.lib gtwin.lib lang.lib rdd.lib macro.lib pp.lib dbfntx.lib dbfcdx.lib common.lib codepage.lib d:\harbour\lib\hbsix.lib с:\clip5\lib\dbfsix.lib


d:\borland\bcc55\bin\ilink32 -Gn d:\radk\clip5\obj\dbfsix.obj aer_1.obj aer_2.obj, aaeerr.exe, , d:\harbour\lib\debug.lib d:\harbour\lib\lang.lib d:\harbour\lib\macro.lib d:\harbour\lib\pp.lib d:\harbour\lib\dbfntx.lib d:\harbour\lib\dbfcdx.lib d:\harbour\lib\codepage.lib d:\harbour\lib\libct.lib d:\harbour\lib\harbour-b32.lib d:\harbour\lib\rtl.lib d:\harbour\lib\hbsix.lib с:\clip5\lib\dbfsix.lib
До использовиния ilink32 пример батника взят с сайта А. Кресина.

После выполнения этого батника, вот что получаю:
D:\>d:\harbour\bin\harbour a_1.prg -n -id:\harbour\include\
Harbour Beta build 0.99-3 Intl.
Copyright 1999-2007, http://www.harbour-project.org/
Compiling 'a_1.prg'...


Lines 11842, Functions/Procedures 240
Generating C source output to 'a_1.c'... Done.

D:\>d:\harbour\bin\harbour a_2.prg -n -id:\harbour\include\
Harbour Beta build 0.99-3 Intl.
Copyright 1999-2007, http://www.harbour-project.org/
Compiling 'a_2.prg'...


Lines 4863, Functions/Procedures 86
Generating C source output to 'a_2.c'... Done.

D:\>d:\borland\bcc55\bin\bcc32 -O2 -d -Id:\harbour\include\ -Ld:\harbour\lib\ a_1.c a_2.c debug.lib vm.lib rtl.lib gtwin.lib lang.lib rdd.lib macro.lib pp.lib dbfntx.lib dbfcdx.lib common.lib codepage.lib d:\harbour\lib\hbsix.lib с:\clip5\lib\dbfsix.lib
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
a_1.c:
a_2.c:
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Fatal: Access violation. Link terminated.

D:\>d:\borland\bcc55\bin\ilink32 -Gn с:\clip5\obj\dbfsix.obj a_1.obj a_2.obj, aaeerr.exe, , d:\harbour\lib\debug.lib d:\harbour\lib\lang.lib d:\harbour\lib\macro.lib d:\harbour\lib\pp.lib d:\harbour\lib\dbfntx.lib d:\harbour\lib\dbfcdx.lib d:\harbour\lib\codepage.lib d:\harbour\lib\libct.lib d:\harbour\lib\harbour-b32.lib d:\harbour\lib\rtl.lib d:\harbour\lib\hbsix.lib d:\clip5\lib\dbfsix.lib
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Fatal: Unsupported 16-bit segment(s) in module \drivers\sex\ver1-1\asm\sixdyn.asm

Если я правильно понял – ему не нравится dbfsix.lib. Но я использую в своих прогах
функции этой библиотеки.
И мне ещё не понятно, для чего дважды (в bcc32 и ilink32)прописывать необходимые библ-ки.
Что делаю неправильно? Как правильно составить батник для сборки прог-м?


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


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


Пост N: 419
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 10.02.08 22:06. Заголовок: Harbour не может исп..


Harbour не может использовать старые 16bit клипперные библиотеки.
Придется Вам довольствоваться hbsix.lib.

Почитайте документацию к ilink32 и bcc32
В Вашем случае, мне кажется, вызывать ilink32 не нужно - bcc32 сам все сделает.

Что касается того как составлять батник - это зависит от стиля, вкуса, даже наличия времени - главное чтобы это работало.








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



Пост N: 2
Зарегистрирован: 10.02.08
ссылка на сообщение  Отправлено: 10.02.08 22:40. Заголовок: Петр пишет: В Вашем..


Петр пишет:

 цитата:
В Вашем случае, мне кажется, вызывать ilink32 не нужно - bcc32 сам все сделает.



Убрал ilink32.
И опять:
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Fatal: Access violation. Link terminated.
Access violation - нарушение доступа. Кого, куда? Где смотреть?

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



Пост N: 3
Зарегистрирован: 10.02.08
ссылка на сообщение  Отправлено: 10.02.08 22:52. Заголовок: Прошу прощения за оп..


Прошу прощения за опечатку. Там, где aer_1 и aer_2 - читать а_1 и а_2.

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




Пост N: 477
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.02.08 11:03. Заголовок: Пользуйтесь xHarbour..


Пользуйтесь xHarbour'ом - он более совместим с Клипером. В xHarbour'е есть утилита hbmake.exe - с ее помощью и соберите свой проект, не мучайтесь, утилита сама все сделает.
Как с ней работать - поищите на этом форуме, здесь это обсуждалось. (строка поиска: hbmake )

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


Пост N: 104
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 11.02.08 11:25. Заголовок: Вместо six использ..


Вместо six используй dbfcdx из поставок с xHarbour( вызовы функций только надо поменять - sx_SetTagNo(1)-> DbSetOrder(1) и т.д.) . Батник с Кресинского сайта нормально работает - им постоянно пользуюсь.
Пример использования утилит rmake http://www.paritetsoft.ru/frh.htm.

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



Пост N: 4
Зарегистрирован: 10.02.08
ссылка на сообщение  Отправлено: 11.02.08 12:38. Заголовок: Спасибо вам - Петр, ..


Спасибо вам - Петр, Andrej и Vlad04!
Пока всё как в тумане. Буду разбираться
Vlad04! Ссылка на пример использования утилит rmake выдаёт - 404 Not Found.
Кому ещё есть что посоветовать, пишите. Буду очень благодарен.


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



Пост N: 5
Зарегистрирован: 10.02.08
ссылка на сообщение  Отправлено: 11.02.08 14:57. Заголовок: В моей проге на Clip..


В моей проге на Clipper есть такие строки:
(а) @ prow(),pcol() say jj&_i_.[i+1]
(б) @ prow(),pcol() say jj&_i_.+jj&_i_.[i+1]
_i_ - 1 или 2
Компилирую в xHarbour.
Строка (а) проходит, а на (б) выдаёт ошибку:
Error E0030 Syntax error: "parse error at 'JJ&_I_.'"
Почему так и что можно сделать?
В Harbour всё OK!


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


Пост N: 65
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 11.02.08 16:26. Заголовок: TakOj пишет: Ссылка..


TakOj пишет:

 цитата:
Ссылка на пример использования утилит rmake выдаёт - 404 Not Found



Ссылка рабочая. Просто в конце стоит "точка". Нужно без нее.

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



Пост N: 6
Зарегистрирован: 10.02.08
ссылка на сообщение  Отправлено: 11.02.08 16:53. Заголовок: PSP пишет: Ссылка р..


PSP пишет:

 цитата:
Ссылка рабочая. Просто в конце стоит "точка". Нужно без нее.


действительно, не заметил. Спасибо!

В строке (б) предыдущего моего поста опечатка (опять).
Правильно так:
(б) @ prow(),pcol() say jj&_i_.+jj&_i_.[i+1]
Но это всё равно не исключает ошибку.

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


Пост N: 66
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 11.02.08 17:09. Заголовок: А можно поподробней ..


А можно поподробней описать что такое jj, _i_, i ?

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



Пост N: 7
Зарегистрирован: 10.02.08
ссылка на сообщение  Отправлено: 11.02.08 17:12. Заголовок: Что-то не пойму, что..


Что-то не пойму, что происходит? При отправке сообщения передаются не то, что надо.
Вот в виде рисунка





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


Пост N: 67
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 11.02.08 17:28. Заголовок: Ну, к примеру вот та..


Ну, к примеру вот такое у меня нормально компилируется и выполняется.


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



Пост N: 8
Зарегистрирован: 10.02.08
ссылка на сообщение  Отправлено: 11.02.08 17:47. Заголовок: PSP пишет: А можно ..


PSP пишет:

 цитата:
А можно поподробней описать что такое jj, _i_, i ?





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



Пост N: 9
Зарегистрирован: 10.02.08
ссылка на сообщение  Отправлено: 11.02.08 18:52. Заголовок: Ошибка Error E0030 ..



Ошибка Error E0030 Syntax error: "parse error at 'JJ&_I_.'" выходит при компилировании в
xHarbour Compiler build 0.92.0 (SimpLex).

Ушла после того, как скомпилировал в xHarbour Compiler build 1.0.0 (SimpLex).


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




Пост N: 479
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.02.08 04:39. Заголовок: Еле нашел то что про..


Еле нашел то что просили:

Порядок работы с HBMake под WinNT/2000/XP такой:

1) Убедится что во вкладке "Переменные среды" (Мой компьютер, свойства, дополнительно)
в окружение PATH был доступ к c:\xHarbour\bin и к c:\BCC55\bin неважно где,
или в "Системные переменные" или в "Переменные среды пользователя".
( Обязательно, я на этом прогорел......)

2) В своей папке проекта делаем несколько папок
OBJ (пустая)
PRG ( туда все исходники *.prg )
RES (туда помещаем файл типа mainto.rc, а в нем единственную строчку
MainIcon ICON "main.ico" - где main.ico ваша иконка, которая будет
значком программы, и в эту же папку помещаем main.ico )
Кстати, оказывается туда можно несколько иконок затолкать, если нужно.


3) Запускаем в корне этих папок команду
hbmake my_app.bc -e (если не запускается, то нет пути к c:\xHarbor\bin)
где my_app.bc имя вашего проекта

4) появится такое окно:
г==== HbMake v1.155 - xHarbour Make Utility Enviroment options =====¬
¦Select the OS Win32Ё Select the C Compiler BCC Ё Graph Lib None Ё¦
¦3rd Party Rdd None Ё [ ] Compress this app [ ] use xHarbour[.dll|.so]¦
¦Obj Files Dir obj-вводим ¦
¦Executable file name my_app [ ] Create dll ¦
¦ ¦

5) далее появится другое окно:
¦ xHarbour Options
¦[ ] Automatic memvar declaration /a [ ] Variables are assumed M-> /v
¦[ ] Debug info /b [ ] Suppress line number information /l
¦[ ] Generate pre-processed output /p [ ] compile module only /m
¦User Defines PRG-вводим User include Path PRG-вводим
¦[ ] Use External Libs [ ] xHarbour FWH
¦Resource file Name: RES-вводим
¦Numbers of source files per line on makefile 5
¦[ ] Use Multi Thread Library Warning Level /w 0

6) Далее появится окно с исходниками,
там нужно нажать клавишу F5, а если нужно убрать из проекта ненужный файл,
то воспользуйтесь пробелом.

7) Далее вам нужно указать головной модуль программы, где стоит main()
¦
¦Inform the main PRG of your application: PRG\MAINTO.PRG
¦

8) далее появится другое окно:
¦ HbMake options
¦[ ] Create #DEPENDS from #include [ ] Scan recursive
¦Excluding these extensions : .ch

НЕ разбирался, что к чему.

9) Далее появится запрос на создание, отвечаем Y.
¦ Build app ? (Y/N)
¦

10) Далее на запрос компиляции отвечаем Y

и ВСЕ !!!

Если нет ошибок, то соберется my_app.exe

В корне папки появиться файл my_app.bc

В Far'e делаем в меню "Ассоциации файлов" вызов на расширение *.bc
г================= Редактирование ассоциаций файлов =================¬
¦ Одна или несколько масок файлов: ¦
¦ *.bc v¦
¦ Описание ассоциации: ¦
¦ xHarbour make file ¦
¦--------------------------------------------------------------------¦
¦ Команда, выполняемая по Enter: ¦
¦ c:\xHarbour\bin\hbmake !.! ¦

Теперь в Far'e нажимаем на my_app.bc клавишей ENTER и проект собираеться.


Но у меня почему то не с первой попытки это вышло.
Если хотите отредактировать заново проект,
то он глючит.
Лучше удалить и заново сделать.
И у меня еще не установился мой главный модуль, мне пришлось
ручками открыть my_app.bc и в объявлениях

OBJFILES = ввести первым obj\mainto.obj
и
PRGFILES = ввести соответственно prg\mainto.prg

И наверно в дальнейшем лучше ручками править этот файл.

Если есть ошибки при компиляции, то можно использовать такой вызов
hbmake my_app.bc -f и в файле my_app.log смотреть их.

Благодарите не меня а наших Гуру на форуме !!!

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



Пост N: 12
Зарегистрирован: 10.07.07
ссылка на сообщение  Отправлено: 12.02.08 10:38. Заголовок: Посмотри еще статью,..


Посмотри еще статью, где олисан мой опыт перевода Clipper-проектов на xHarbour
http://rapidshare.com/files/42684460/Clip2HB.rar

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



Пост N: 11
Зарегистрирован: 10.02.08
ссылка на сообщение  Отправлено: 12.02.08 12:21. Заголовок: Andrey пишет: Еле н..


Andrey пишет:

 цитата:
Еле нашел то что просили:

Порядок работы с HBMake под WinNT/2000/XP такой:



Andrey! Это то, что не открывалось по ссылке
http://www.clipper.fastbb.ru/?1-4-165-00000089-000-0-0-1160258031
в ветке "[x]Harbour -> Нужна помощь - вывести на консольиндикатор расскладки калавиатуры" ?
Спасибо всем гуру и Andrey!
Ко мне можно на "ты".


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



Пост N: 12
Зарегистрирован: 10.02.08
ссылка на сообщение  Отправлено: 12.02.08 12:24. Заголовок: TimTim пишет: Посмо..


TimTim пишет:

 цитата:
Посмотри еще статью, где олисан мой опыт перевода Clipper-проектов на xHarbour



Скачал. Спасибо! Будем изучать.

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



Пост N: 18
Зарегистрирован: 10.02.08
ссылка на сообщение  Отправлено: 13.02.08 17:35. Заголовок: Vlad04 пишет: ... ..


Vlad04 пишет:

 цитата:
... Батник с Кресинского сайта нормально работает - им постоянно пользуюсь...


Ничего против не имею.

Vlad04 пишет:

 цитата:
Вместо six используй dbfcdx из поставок с xHarbour( вызовы функций только надо поменять - sx_SetTagNo(1)-> DbSetOrder(1) и т.д.) ...


А как узнать эти соответствия и где можно их посмотреть?
Вот что линкер выдаёт:
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: Unresolved external '_HB_FUN_SETRDD'
Error: Unresolved external '_HB_FUN_SX_SETSCOPE'
Error: Unresolved external '_HB_FUN_SX_CLRSCOPE'
Error: Unresolved external '_HB_FUN__SXCONDSET'
Error: Unresolved external '_HB_FUN_SX_SETTAG'
Error: Unresolved external '_HB_FUN__VDBFSIX'
Чем их заменить? Подскажите, плиз!



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


Пост N: 105
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 14.02.08 08:46. Заголовок: Вообще убрать ссылки..


Вообще убрать ссылки на Six.
SX_SETTAG -> IndexOrd()
вместо SX_SETSCOPE
OrdScope(0,KeyBeg)
OrdScope(1,KeyEnd)

Вот пример старта
*********************
Procedure main
local nWosract:=0,n1:=0,n2:=0,n3:=0 ,DdatBeg
Local nPos:=0 ,sHouse:='',mHouse:={}

REQUEST DBFCDX , DBFFPT
REQUEST HB_CODEPAGE_RU866
hb_SetCodepage("RU866")
set date brit
set century on

DdatBeg:=Ctod('01/06/2007')



sElect 0
// справочник
Use 'GORDATA2' Via "DBFCDX" alias SLAVE
if !File('GORDATA2.CDX')
INDEX ON STRT_CODE2 Tag STRT_CODE
endif
DbsetOrder(1)

sElect 0
**************************

// список клиентов
Use kLIENT Via "DBFCDX" alias Master

Сообщи email вышлю весь пример



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

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