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





Пост N: 4
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 20.10.15 13:45. Заголовок: Перевожу Clipper-овский проект в Harbour


Добрый день, господа.
Начал переводить проект с CLIPPERa(5.2Е) в Harbour и сразу же столкнулся с проблемой:
undefined reference to `HB_FUN_TOKEN' ... и т.д.

Пользуюсь инструкцией "Harbour - шаг за шагом" Александра Кресина, т.е. использую версию "harbour-3.0.0-win.exe".

Поискал здесь на форуме похожую ситуацию. Нашел здесь: "unresolved external _HB_FUN_", но похоже не мой случай, до линковки дело еще не доходит.

Куда копать? Подскажите, пожалуйста.


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


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


Пост N: 1168
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 20.10.15 17:59. Заголовок: mikeas, скачайте све..


mikeas, скачайте свежий билд. В нем точно есть эта библа. Возможно, что и указывать на нее не придется.

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



Пост N: 154
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 20.10.15 18:22. Заголовок: hbc раздел в hbp


Перечисляет библиотеки в папке ..\CONTRIB\
hbmk2 будет искать и найдет , в частности, файл C:\hb30\contrib\hbct\hbct.hbc
с описанием, где брать библиотеку HBCT
= = = =
#
# $Id: hbct.hbc 16259 2011-02-09 15:58:45Z vszakats $
#

incpaths=.

libs=${_HB_DYNPREF}${hb_name}${_HB_DYNSUFF}


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





Пост N: 13
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 20.10.15 18:23. Заголовок: Внимательно всмотрел..


Внимательно всмотрелся в сообщения об ошибках. Увидел там имена и своих модулей.
Решил, что надо собрать весь проект, "пусть он развалится" :)
Сейчас занимаюсь устранением клипперовских безобразий/безалаберностей :)
Их много. Это печалит.
Как устраню, опять вас помучаю.

Спасибо всем! Искренне рад, что не в одиночестве вожусь!

И таки да, файл libhbct.a на месте. Свежий билд скачал.

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



Пост N: 155
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 20.10.15 18:25. Заголовок: есть C:\hb30\lib\win\mingw\libhbct.a - размещение


есть C:\hb30\lib\win\mingw\libhbct.a - размещение

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





Пост N: 14
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 20.10.15 20:40. Заголовок: petr707, не понял, В..


petr707, не понял, Вашу фразу: "есть C:\hb30\lib\win\mingw\libhbct.a - размещение"
поясните, пожалуйста.

1) Поправил неряшливости Клиппера
2) Поправил .bat и .hbp файлы по совету petr707
Кол-во ошибок уменьшилось до 11 штук!
Похоже таких функций в Харборовской CTLIB действительно нет:
`HB_FUN_CSETALL'
`HB_FUN_DISKFREE'
`HB_FUN_SPLITV'
`HB_FUN_FILECHECK' разбираюсь с ними.



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



Пост N: 156
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 21.10.15 07:07. Заголовок: Новые/старые функции


1) Можно найти аналоги функций или близкие, например
FUNction DISKFREE(cDrive)
return hb_DiskSpace(cDrive,1)

FUNction DISKTOTAL(cDrive)
return hb_DiskSpace(cDrive,3)

или поставить временные заглушки , например
Function filecheck()
return 1

2) Фраза про "размещение" - это просто ссылка на пусть к файлу этой библиотеки ( при стандартной инсталляции hrb 3.0)

3) Подтверждаю, что лучше сразу использовать текущий harbour 3.2.0dev , чем стабильный 3.0.0. Не придется переделывать потом.
hbmk2 от 3.2 много чего больше умеет, чем hbmk2 от 3.0 и много другое чего продвинуто


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





Пост N: 15
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 21.10.15 10:09. Заголовок: petr707, спасибо. Та..


petr707, спасибо. Так и сделаю.
Вопрос: а где Вы берете описания функций? Что-то не нашел :(
В Mingui нашел файл: "(x)harbour.chm", но не уверен в достоверности описания, например DISKFREE() там есть.

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



Пост N: 157
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 21.10.15 10:56. Заголовок: Описания функций


Источников много, в том числе и здесь на форуме click here
Можно смотреть в инсталляции C:\harbour\ChangeLog.txt , C:\harbour\doc\
Можно использовать в hrb3.2.0dev hbmk2.exe -find xxxxx


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





Пост N: 16
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 21.10.15 17:59. Заголовок: Ура! Подчистил, собр..


Ура!
Подчистил, собрал, запустил. Работает!!! Но, пока частично :(

Подводит клипперовская свобода. Оказывается в Харборе параметры процедур LOCAL, а в Клиппере PRIVATE, например:
procedure poisk(p1)
p1:=IIF(p1=NIL,"par1",p1)
PRIV p2:="par2"

MyBrowse( p2 )

RETURN

FUNCTION MyBrowse( oBrowse )

? "oBrowse=", oBrowse
? "p1=", p1

RETURN NIL

Харбор выдает ошибку:
Error BASE/1003 Variable does not exist: P1

В Клиппере такое прокатывало.

Нет ли в Компиляторе Харбора какого переключателя, чтобы считать параметры PRIVATE?

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




Пост N: 5315
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.10.15 18:10. Заголовок: Параметры процедур и..


Параметры процедур и в Clipper локальные.
Нужны Private используем , PARAMETERS

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





Пост N: 17
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 21.10.15 18:25. Заголовок: О, нашел выход. Не к..


О, нашел выход. Не красивый, но очень полезный. Вот так срабатывает в Харборе:

procedure poisk()
PARAM p1
p1:=IIF(p1=NIL,"par1",p1)
PRIV p2:="par2"

MyBrowse( p2 )

RETURN

FUNCTION MyBrowse( oBrowse )

? "oBrowse=", oBrowse
? "p1=", p1

RETURN NIL


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





Пост N: 18
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 21.10.15 18:28. Заголовок: Да, точно. Многие мо..


Да, точно. Многие модули у мня были без заголовков PROC/FUNC.
Повставлял заголовки, ну и втиснул туда параметры не думая о последствиях.
Придется заново лопатить все :(

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




Пост N: 5316
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.10.15 18:28. Заголовок: mikeas пишет: О, на..


mikeas пишет:

 цитата:
О, нашел выход.


я об этом выше и писал :)

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





Пост N: 19
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 22.10.15 08:50. Заголовок: Да, Dima, Вы правы. ..


Да, Dima, Вы правы. Это я не внимательный :(

Обнаружил очередную проблему: не работает SET SCOPE ! (Я использую SIXCDX, так исторически сложилось, но похоже в Харборе SIX кривой :( )
Поискал на сайте. Нашел аналогичную проблему, которую описывал wad1 в 2009 году.
Решение: полный отказ от SIX.

Придется все перепахивать на предмет замены SIX-функций "sx_..." на аналоги.
Жаль. Финиш был так близок :)

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




Пост N: 5318
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.10.15 09:31. Заголовок: mikeas пишет: Обнар..


mikeas пишет:

 цитата:
Обнаружил очередную проблему: не работает SET SCOPE


а так
#include "dbinfo.ch"
dbOrderInfo(DBOI_SCOPETOP........
dbOrderInfo(DBOI_SCOPEBOTTOM....


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





Пост N: 20
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 22.10.15 10:00. Заголовок: Dima, сори, не понял..


Dima, сори, не понял. Мне не знакомы эти Харбор-функции.
Надеюсь если отключить SIXCDX повсеместно в проекте и подключить RDDCDX, то все SCOPe-ы заработают. Или нет?
Мне только останется заменить явные вызову SIX-функций на их аналоги. Вот в этом возни много будет.
Или м.б. с SIXCDX можно что-то переключить, чтобы SCOPE выполнялись?

Вся суть проблемы: минимизировать исправления исходного кода.

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




Пост N: 5319
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.10.15 10:03. Заголовок: mikeas я бы провери..


mikeas
я бы проверил на простом примере для начала SCOPE c SIXCDX (сомневаюсь что он глючный)
а на другом тоже самое с DBFCDX

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





Пост N: 21
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 22.10.15 10:20. Заголовок: Это разумно, сейчас ..


Это разумно, сейчас попробую.

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




Пост N: 5320
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.10.15 10:33. Заголовок: mikeas Поздно )) ..


mikeas
Поздно ))

 
#include "dbinfo.ch"
#include "hbsix.ch"

Proc main
Local el
Request SIXCDX

dbcreate("testsix",;
{{"ndok","n",5,0}},"SIXCDX",.t.,"testsix")
index on ndok tag test

for each el in {1,1,2,2,3,3}
testsix->(dbappend())
testsix->ndok:=el
next


testsix->(dbgotop())
testsix->(browse())

testsix->(dbOrderInfo(DBOI_SCOPETOP,,,3))
testsix->(dbOrderInfo(DBOI_SCOPEBOTTOM,,,3))


// так не работает
//testsix->(sx_setscope(0,3))
//testsix->(sx_setscope(1,3))

testsix->(dbgotop())
testsix->(browse())
return


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





Пост N: 22
Зарегистрирован: 11.11.05
ссылка на сообщение  Отправлено: 22.10.15 12:35. Заголовок: Dima, спасибо. Я тож..


Dima, спасибо. Я тоже убедился, что SIX не работает на своем примере. Убираю его нафиг. Перехожу на DBFCDX.

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

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