Форум » [x]Harbour » Помогите советом начинающему... » Ответить

Помогите советом начинающему...

Urri: Тут вот надумал переползти на xHarbour. Возникла следующая проблема: имена всех функций и подпрограмм дополняются префиксом HB_FUN_. А можно ли этого избежать так, чтобы остались родные, начальные имена. У меня весь софт построен на скриптах, в которых уже стоят вызовы функций и процедур по привычным, родным именам. И перелопатить везде в 5000 текстовых файлах-скриптах вызовы функций и поменять на новые - задача крайне утомительная с непонятной перспективой на успех.

Ответов - 294, стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All

Pasha: Этот префикс предназначен только для функций на С. Для харбор-функций используются "родные" имена без префикса А что это за скрипты ? На каком языке ? Если они обрабатывались клиппером, то с таким же успехом обработаются и харбором.

Urri: Очень обнадеживающий ответ. Буду надеяться, что так и есть. Продолжил эксперимент. И тут на вызов функции AX_LOADED из ADS пишет, что отсутствует _HB_FUN_AX_LOADED. Присоединял при линковке и rddads.lib и ace32.lib. Ничего не поменялось. К неразрешенным отнесла и другие вызовы стандартной ADS. И что теперь делать? Про скрипты: это аналог языка Клиппер с некоторыми расширениями, который интерпретируется клипперной же программой.

Dima: Urri пишет: AX_LOADED AdsIsServerLoaded()


Urri: Ой Dima, администратор, ты так строго выглядишь и лапкой нервно перебираешь. Когда мои дилетантские вопросы по Харбору утомят - скажи. Проверю обязательно твою рекомендацию и еще обращусь не раз за советом, уж извини... Лирическое отступление: не ты ли главный администратор сайта dimma.da.ru? Если так, то прими справедливый наезд на тебя: тут случилась оказия в Москву съездить, так я карту метрополитена с твоего, мною любимого сайта, выдрал, верил тебе и никуда больше не обращался. В Москве меня с этой картой засмеяли из-за того, что она чуть ли не с советских времен... Не икалось ли тебе??? Исправь пожалуйста...

Dima: Urri Главный у нас Dimma :) Он в Москве и живет.

Pasha: Urri пишет: И тут на вызов функции AX_LOADED из ADS пишет, что отсутствует _HB_FUN_AX_LOADED. Это совсем другой вопрос. Дело в том, что имена функций Ads у 16-разрядного клиента для клиппер и у 32-разрядных клиентов отличаются. Чтобы не переделывать код, можно задать команды препроцессора: #xtranslate AX_LOADED(<cFile>) => AdsIsServerLoaded(<cFile>)

Urri: Добрый день. Продолжаю задавать вопросы. Заменил вызов AX_LOADED() на AdsIsServerLoaded() - не помогло. Я так понял, что нужно на этапе линковки присоединить библиотеку для работы с ADS. В папке LIB имеются два претендента: ace32.lib и rddads.lib. Подключал последовательно обе библиотеки, но эффект одинаковый: AdsIsServerLoaded() - ссылка не найдена. Кстати, чем отличаются эти библиотеки, какую выбрать? Я хочу, чтобы по-старому обрабатывались .DBF & .CDX файлы (т.е., чтобы часть пользователей могла остаться под клиппером, часть новых - под харбором (возможно ли такое?)). И есть ли информации о соответствии старых функций ADS и новых? Я тут пересмотрел оглавление обеих ранее указанных библиотек и не нашел замены некоторым функциям старой, клипперной библиотеки ADS, например ax_rlock,ax_unlock,ax_transaction,ax_keyno и других

k_dima: я думаю, много проблем решится, если внимательно почитать страничку Кресина http://kresin.belgorod.su/rus/hrbfaq.html

Urri: Добрый день. Прочитал по указанной ссылке страницу Кресина, добился отсутствия неразрешенных ссылок (еще то было развлечение). Радостный запускаю и получаю хитрое сообщение: "Порядковый номер 468 не найден в библиотеке DLL ACE32.DLL. Отключил вызов ADS временно (т.е. убрал REQUEST ADS) - не помогло. И что теперь делать? Победа так близка...

Pasha: Значит, rddads.lib собран с другой версией ace32.lib Надо собирать именно с той версией, которая будет использоваться

Urri: Хм, интересно, а какой тогда смысл готовый пакет выкладывать, если в нем несовместимые библиотеки? Пишут везде, что наличие сырцов не очень здорово, т.к. выкладывают весьма сырые сырцы (каламбур) и нужно брать проверенный готовый дистрибутив (если его можно так назвать). И если я не использую ADS - сообщение такое же...

Pasha: Я неправильно ответил. Имеется в виду ace32.lib. Надо ее создать командой implib -f ace32.lib ace32.dll и линковать именно с этой ace32.lib свою программу

Urri: На странице у Кресина я видел указание, что нужно так сделать. Но в пакете, скачаном с родного сайта Харбора нет ace32.dll, а есть готовая ace32.lib. Я ей и воспользовался. Может где можно скачать другой вариант Харбора или дайте ace32.dll...

k_dima: скачай с http://devzone.advantagedatabase.com advantage client engine под свою версию сервера, Правда я пользуюсь коммерческим пакетом с xharbour.com , там уже включены и собраны все библиотеки под ads9, но если не ленивый - то это можно сделать вручную

Pasha: Urri пишет: На странице у Кресина я видел указание, что нужно так сделать. Но в пакете, скачаном с родного сайта Харбора нет ace32.dll, а есть готовая ace32.lib. Я ей и воспользовался. Может где можно скачать другой вариант Харбора или дайте ace32.dll... В отличие от клиппера, 32-х разрядный клиент Ads надо установить, там не только ace32.dll, есть еще несколько dll Поэтому его надо взять на сайте разработчика, т.е. Extend Systems

Urri: Пока ADS отложил в сторону, пытаюсь запустить чисто в клипперном варианте с CDX индексами. При старте вываливается гнусно-противная ошибка "main.exe - обнаружена ошибка. Приложение будет закрыто. Приносим извинения за неудобства.", дамп и до свидания... И что теперь делать?

Urri: Отложил временно ADS. Запустил, получил "main.exe - обнаружена ошибка. Приложение будет закрыто. Приносим извинения за неудобства.", дамп и до свидания... Что теперь делать?

Pasha: Либо неправильно собрана программа, либо вызов какой-то функции при старте дает ошибку Надо идти от простого к сложному. То есть, сначала собрать простую тестовую программу, и запустить ее. Затем подключать модули, и так далее

Urri: Подскажите, пожалуйста. Переменная, объявленная как local, которой присваивается начальное значение в операторе объявления, при повторном входе в процедуру что, теряет свое предыдущее значение и по новой инициализируется?

Urri: Что-то неудачно спросил. Так ведь и должно быть. Извиняйте...



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