On-line: Dr. Oldwarez, PSP, tnsr2, гостей 1. Всего: 4 [подробнее..]
АвторСообщение
постоянный участник


Пост N: 1
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 25.12.07 17:41. Заголовок: C чего начать? Есть ли С-API? И т. д.


Здравствуйте.

Хотелось бы услышать советы и рекомендации, во-первых, "откуда качать, что ставить и т.п.". И второе, это информация по С-API.

Объясню свою ситуацию. Я не клипперист (дельфист), однако, получилось, что плотно познакомился с Clipper и Alaska Xbase++. Для Alaska Xbase написал дельфи-оболочку над С-API и полностью портировал FastReport (генератор отчетов) для этого языка, продукт продается и т.д (см. http://www.hotsoft.ru/ALASKA/frax_eng.htm).

Но вот стал получать много писем из Испании Призывают тоже самое сделать для Harbour/xHarbour/FiveWin и т. д..

Так как ничего до этого про Harbour не знал (слышал краем уха только), то хочется и услышать советы по поводу "с чего начать, на что обратить внимание", да и вообще советы по поводу "а стоит ли заморачиваться, есть ли здесь рынок и т.д."

Спасибо.

Спирин Сергей.


Спасибо: 0 
Профиль
Ответов - 201 , стр: 1 2 3 4 5 6 7 8 9 10 11 All [только новые]


модератор




Пост N: 667
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 25.12.07 18:15. Заголовок: C чего начать?

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


Пост N: 2
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 25.12.07 18:21. Заголовок: OK. Спасибо. :sm29: ..


OK. Спасибо.

А насчет, есть ли потребность в профессиональном генераторе отчетов? Много ли пользователей, испытывающих такую потребность?


Спирин Сергей.

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




Пост N: 668
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 25.12.07 18:35. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
есть ли потребность в профессиональном генераторе отчетов?


Конечно, есть!

Sergey Spirin пишет:

 цитата:
Много ли пользователей, испытывающих такую потребность?


Точно не скажу, каждый отвечает на этот вопрос индивидуально...


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


Пост N: 3
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 25.12.07 18:49. Заголовок: Насчет API? Какой ..


Насчет API?

Какой у Харбура ран-тайм? Набор dll? Или возможен полность "независимый" exe (раз компилируется на С)?

В Xbase, например, это набор dll, а API - это функции экспортируемые этими dll.

Спирин Сергей.

Спасибо: 0 
Профиль



Пост N: 90
Зарегистрирован: 12.06.06
ссылка на сообщение  Отправлено: 25.12.07 19:14. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
А насчет, есть ли потребность в профессиональном генераторе отчетов?


Я тоже поддерживаю Григория насчет необходимости генератора отчетов !!!

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




Пост N: 669
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 25.12.07 19:24. Заголовок: i3t4j6 пишет: возмо..


i3t4j6 пишет:

 цитата:
возможен полность "независимый" exe ?


Да, именно так (это основной режим сборки программы).



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


Пост N: 4
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 26.12.07 09:40. Заголовок: gfilatov пишет: Да,..


gfilatov пишет:

 цитата:
Да, именно так (это основной режим сборки программы).



Есть и неосновной режим? Хотя, по Вашей ссылке вижу, что можно "спокойно" использовать С. А значит, во внешнюю dll я могу передать просто указатели на точки входа в функции... Вопрос, все-таки, на какие функции. Есть ли все-таки С-API? Если я не ошибаюсь, то в самом Клиппере С-API был. Меня интересуют наиболее универсальные, например, в Xbase:

_conCallPa() - вызов любой функции
_conGetXXX - возвращает значение любой переменной

и т. д. Подобное было и в Клиппере (для С расширений), что-то должно быть и в Харбуре?

Устанавливать и экпериментировать начну на праздниках, наверное, сейчас же хотелось бы больше информации "для размышления". Поэтому буду признателен за такую информацию и за любые советы.

Кстати, "просто" Харбур - это только консоль?

Спирин Сергей.



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




Пост N: 670
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 26.12.07 11:09. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Есть и неосновной режим?


Да, это сборка программы с harbour.dll, при которой экзешник будет небольшого размера (подобно VB), но потребление памяти значительно вырастет.

Sergey Spirin пишет:

 цитата:
Есть ли все-таки С-API?


Конечно, есть. Но это вопрос к сишникам... Паша, поможешь?

Sergey Spirin пишет:

 цитата:
"просто" Харбур - это только консоль?


Верно. Для создания графического интерфейса потребуется дополнительная GUI-библиотека: таковых есть несколько, как платных, так и бесплатных.
Почитай на этом форуме, они упоминаются довольно часто...

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




Пост N: 671
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 26.12.07 11:13. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
буду признателен за ... любые советы


Рекомендую посетить мою страничку, посвященную бесплатной библиотеке MiniGUI для Харбора:
http://hmg.narod.ru

К сожалению, русскоязычных ресурсов, посвященных Харбору, немного...



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


Пост N: 5
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 26.12.07 12:03. Заголовок: gfilatov пишет: Для..


gfilatov пишет:

 цитата:
Для создания графического интерфейса потребуется дополнительная GUI-библиотека: таковых есть несколько, как платных, так и бесплатных.



Правильно ли я понимаю, что если мой Fast будет работать с просто Харбур, то он будет работать и с любым расширением Харбура? То есть, все эти расширения используют Харбур как ядро? xHarbour - это только графическое расширение?


 цитата:
Но это вопрос к сишникам... Паша, поможешь?



По API пока вижутолько один ресурс вообще - http://culikr.sites.uol.com.br/funcapi.htm Похоже и непохоже на Xbase одновременно.

Да, помогите пожалуйста. Давайте, может быть, заинтересую Реальным помошникам могу пообещать FastReport for Harbour либо по себястоимости (очень недорого), либо вовсе подарком

Помощь, кстати, не только от сишников нужна будет. Демо надо будет, консольное, например, делать (если под чистый Харбур) и т.д.

Кстати, у тех же испанцев можно мое демо для Xbase полностью скомпилированное скачать:

http://www.canudas.com/xbase/

И убедиться, что FastReport продукт стоящий...некоторого времени

Спасибо.

Спирин Сергей.


Спасибо: 0 
Профиль
Администратор




Пост N: 675
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 26.12.07 12:39. Заголовок: C-API конечно есть, ..


C-API конечно есть, см. include\hbapi.h

Принцип такой: вместо семейства функций клиппер _par*(), _ret*() вводятся
функции hb_par*() и hb_ret*(). причем этот набор функций намного больше, поскольку поддерживается больше типов данных - как самого языка Harbour, так и внутренних типов данных

Кстати, глянь и другие файлы *.h, там содержатся другие прототипы с-функций

По поводу режима сборки. Официальный релиз Harbour содержит как библиотеки *.lib, предназначенные для создания одного exe, так и Harbour.lib, которая ссылается на harbour.dll. harbour.dll собирается из основных библиотек. Но поскольку имеются все сырцы, можно собрать свой вариант harbour.dll, исключив лишнее и добавив те библиотеки, которые необходимы. Так я поступаю
В целом: поскольку проект открытый, любой программист может использовать подходящий ему режим



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




Пост N: 672
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 26.12.07 12:46. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
все эти расширения используют Харбур как ядро?


Не совсем так. Посмотрите схему создания экзешника на Харборе, может станет яснее:

PRG -> HARBOUR -> C -> C compiler -> EXE
........................................RES compiler /
Таким образом, Харбор создает исходник на Си, который затем компилируется и линкуется обычным Си-компилятором.
На выходе имеем 32-разрядное приложение: либо консольное, либо GUI, если использована графическая библиотека.

Sergey Spirin пишет:

 цитата:
xHarbour - это только графическое расширение?


Однозначно - нет, это Расширенный Харбор-компилятор, который разрабатывается параллельно Харбору.

Sergey Spirin пишет:

 цитата:
FastReport продукт стоящий


Да, знаем...



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


Пост N: 6
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 26.12.07 12:49. Заголовок: Pasha пишет: Принци..


Pasha пишет:

 цитата:
Принцип такой: вместо семейства функций клиппер .....



Ok. Спасибо. А какое "типичное" использование этих функций. И, как думаете, возможен ли описанный мною выше способ использования? То есть, я загружаю dll, передаю в нее все точки входа, и далее вызываю эти фунуции из dll?

Спирин Сергей.

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


Пост N: 7
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 26.12.07 13:17. Заголовок: gfilatov пишет: Одн..


gfilatov пишет:

 цитата:
Однозначно - нет, это Расширенный Харбор-компилятор, который разрабатывается параллельно Харбору.



Пожалуй, здесь мне надо быть осторожней Скажем так, если Fast будет использовать только 10-15 С-API функций, которые изначально присутствуют в Харбур, то он будет совместим с FiveWin или c Xailer и с другими?

Спирин Сергей.

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




Пост N: 673
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 26.12.07 13:41. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
он будет совместим с FiveWin или c Xailer и с другими?


Уточнение: он будет совместим с FiveWin для Harbour
и Xailer для xHarbour (поскольку Xailer ориентирован на использование только компилятора xHarbour, сборка которого (с внесенными изменениями) есть на их сайте).
Но можно сформулировать проще: если FastReport будет представлять из себя обычную сишную DLL, то доступ к такой библиотеке будет возможен из любого Win-приложения, независимо от того, написано оно на Си, [х]Харборе, VB или Дельфи.
Например, мы можем из Харбора работать с бесплатной библиотекой UnRar.Dll, позволяющей разархивировать любые RAR-архивы



Спасибо: 0 
Профиль
Администратор




Пост N: 676
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 26.12.07 13:53. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Правильно ли я понимаю, что если мой Fast будет работать с просто Харбур, то он будет работать и с любым расширением Харбура? То есть, все эти расширения используют Харбур как ядро? xHarbour - это только графическое расширение?



В принципе да. FastRep может создавать свое отдельное окно, и быть независимым от харбор-программы. harbour-api необходим только для передачи параметров и возврата резельтата

Sergey Spirin пишет:

 цитата:
Ok. Спасибо. А какое "типичное" использование этих функций. И, как думаете, возможен ли описанный мною выше способ использования? То есть, я загружаю dll, передаю в нее все точки входа, и далее вызываю эти фунуции из dll?

Спирин Сергей.



Сам генератор отчетов можно оформить в виде отдельной dll (назовем ее fr.dll) в том случае, если одновременно используется harbour.dll. При создании fr.dll необходимо вызывать функции вида HB_par, а это тянет за собой довольно тяжелые библиотеки rtl.lib, vm, lib, common.lib. Все они содержатся в harbour.dll.
Если собирать без dll, то всю виртуальную машину харбора (из vm.lib) прийдется
дублировать в fr.dll, что не есть хорошо

А использовать hb-api совсем несложно

Делается C-функция:

#include "hbapi.h"
...

HB_FUNC( FUNCNAME )
{
// затем надо принять параметры из вызывающей процедуры функциями hb_par*()
// к примеру числовой параметр типа long:
long lPar1 = hb_parnl(1); // 1 - это номер параметра
или числовой параметр типа double:
double dPar1 = hb_parnd(2);
или строка
char *szStr = hb_parc(3);

// затем можно делать что угодно, например вызывать функции из модуля на pas
// и в конце если надо - возврат результата

hb_retnl(lRet);
}

Из харбор-программы вызов этой функции:

FUNCNAME(p1, p2, p3, ...)

Есть возможность работы с массивами харбор, или с другими специфическими типами данных

Спасибо: 0 
Профиль
Администратор




Пост N: 677
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 26.12.07 13:56. Заголовок: gfilatov пишет: Но ..


gfilatov пишет:

 цитата:
Но можно сформулировать проще: если FastReport будет представлять из себя обычную сишную DLL, то доступ к такой библиотеке будет возможен из любого Win-приложения, независимо от того, написано оно на Си, [х]Харборе, VB или Дельфи.



Да, кстати, это мысль
Можно разделить fr на 2 части: маленькая lib будет содержать харбор-функцию написанную на С, созданную через HB_FUNC. предназначенную для взаимодействия с хаобор-программой. А основная часть (fr.dll) может быть уже полностью независима от харбора

Спасибо: 0 
Профиль
Администратор




Пост N: 678
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 26.12.07 14:01. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
"а стоит ли заморачиваться, есть ли здесь рынок и т.д."



У нас это малоизвестный продукт, но в некоторых странах в силу обстоятельств Харбор очень популярен: в основном это Латинская Америка

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


Пост N: 8
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 26.12.07 14:06. Заголовок: gfilatov пишет: Уто..


gfilatov пишет:

 цитата:
Уточнение: он будет совместим с FiveWin......



Ok. Здесь понятно.


 цитата:
Но можно сформулировать проще: если FastReport будет представлять из себя обычную сишную DLL, то



А вот здесь, проще не значит правильней FastReport может представлять собой только дельфишную DLL, ну это конечно роли особой не играет. А вот насчет паралели с RAR-ом. Мой "FastReport for Alaska Xbase (FRAX)" и есть одна DLL, испанцы, кстати, и стали сначала приходить с вопросом, а почему под Харбур не работает, вроде все одно и тоже? ... Я, конечно, могу скомпилировать универсальную DLL, но не знаю насколько Вам понравиться открывать dbf-ы через ADO и не иметь в отчетах никакого взаимодействия ни с данными программы, ни с языком и т. д. И это уже не будет "FastReport ДЛЯ КАКОЙ-ТО ЯЗЫК". FRAX - это ДВУХСТОРОННЕЕ взимодействие. Так же я хочу сделать и FastReport for Harbour (если буду делать). Для двухстороннего взаимодействия мне и нужен С-API.

Спирин Сергей.







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


Пост N: 9
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 26.12.07 14:32. Заголовок: Pasha пишет: Из хар..


Pasha пишет:

 цитата:
Из харбор-программы вызов этой функции:

FUNCNAME(p1, p2, p3, ...)



Спасибо. Единственное, меня больше интересует "движение в другую сторону" FastReport - это одна Дельфи-dll (для Xbase - FrSyst.dll ). Понятно, что я могу написать в ней любую функцию и эту функцию вызвать из харбур-программы. Пока мне не очевидно (хотя уже одну версию говорил) как сделать наоборот Как мне например из этой dll вызвать .. ну, DbSkip() ?



Спасибо: 0 
Профиль
Ответов - 201 , стр: 1 2 3 4 5 6 7 8 9 10 11 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 169
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет