Форум » [x]Harbour » Подскажите, как использовать классы С++ в Harbour » Ответить

Подскажите, как использовать классы С++ в Harbour

Самоделкин: Вчера наткнулся на свежее обновление IBPP (от 17.10.2012). Это "C++ client interface for Firebird" (цитата с сайта). Интуитивно чувствую, что этот набор классов можно использовать с Harbour. Самостоятельно разобраться не могу - не хватает ни знаний, ни опыта. Помогите, люди добрые, кто чем может :).

Ответов - 9

alkresin: Процедура, примерно, такая: 1) написать на С++ функции - "обертки" для этих классов, чтобы вызывать их из С кода, при этом функции эти надо объявлять как extern "С" ( чтобы обеспечить порядок вызова/возврата функций как в С ); 2) написать на С функции, объявленные как HB_FUNC(), связывающие те "обертки" с кодом на Харборе.

Самоделкин: alkresin пишет: Процедура, примерно, такая: Спасибо за ответ. Технологию понял. К сожалению, мне это не по силам - не та квалификация :(. А было так заманчиво ...

Dima: Самоделкин Попробуй дернуть Сыроежку , но не факт что он захочет помочь.


Самоделкин: А как его "дернуть"? На форуме его нет с июля, в профиле контактной инфы нет.

Dima: Самоделкин пишет: А как его "дернуть"? http://clipper.borda.ru/?1-3-0-00000219-000-0-0-1343659390 Кстати он же Григорьев Владимир

Самоделкин: Постучался. Ждем-с...

Самоделкин: Выдержка из ответа Сыроежки: Что касается меня, то к сожалению я не знаком с Firebird, поэтому вряд ли могу быть полезным. Могу лишь обратить ваше внимание, что в Harbour есть средства создания классов, поэтому вполне возможно переписать с C++ то, что для вас представляеет интерес, в рамках синтаксических конструкций Harbour. То есть имеется два подхода. Первый - это попытаться "обернуть" C++ код в функции C, как было указано первоначально. Но это не всегда возможно. Есть ограничения, например, на шаблонные функции и классы. Второй - это перевести код C++ в код Harbour, используя возможности языка Harbour и его средства создания классов. В-о-о-о-т... Уважаемые гуру! Может быть, кто-нибудь из вас возьмется за реализацию второго (см.выше) пути? А? Ведь в итоге все получат прямой доступ к Firebird из Harbour! По ссылке в первом посте доступны исходные коды набора классов. Я, к сожалению, не профессиональный программист - так, кое-какие поделки для себя и коллег делаю. Это, увы, не мой уровень.

Dima: Самоделкин пишет: Ведь в итоге все получат прямой доступ к Firebird из Harbour Возможно стоит глянуть то что уже есть в Harbour harbour\contrib\sddfb harbour\contrib\hbfbird harbour\extras\rddado я честно говоря не сильно в это вникал так как не надо.

Самоделкин: Dima пишет: Возможно стоит глянуть то что уже есть в Harbour harbour\contrib\sddfb harbour\contrib\hbfbird harbour\extras\rddado hbfbird я смотрел. Насколько я понял, там не все реализовано. По поводу rddado - честно говоря, уже не помню, что там не устроило. А вот sddfb я как-то пропустил. Посмотрю, спасибо.



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