Автор | Сообщение |
|
| постоянный участник
|
Пост 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 не знал (слышал краем уха только), то хочется и услышать советы по поводу "с чего начать, на что обратить внимание", да и вообще советы по поводу "а стоит ли заморачиваться, есть ли здесь рынок и т.д." Спасибо. Спирин Сергей.
|
|
|
Ответов - 201
, стр:
1
2
3
4
5
6
7
8
9
10
11
All
[только новые]
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 10.01.08 19:31. Заголовок: Петр пишет: Такие (..
Петр пишет: цитата: | Такие (похожие) конструкции "любят" применять и пользователи FiveWin |
| Ага ... #include "FiveWin.ch" function Main() local hItem1 := ItemNew( "Hello world!" ) local hItem2 := ItemNew( "From a Harbour DLL" ) HbDLLEntry2( "TEST", hItem1, hItem2 ) ItemRelease( hItem1 ) ItemRelease( hItem2 ) MsgInfo( "ok from EXE" ) return nil DLL FUNCTION HBDLLENTRY2( cProc AS LPSTR, pItem1 AS LONG, pItem2 AS LONG ) AS LONG PASCAL LIB "BabuDLL.dll" #pragma BEGINDUMP #include <hbapi.h> #include <hbapiitm.h> HB_FUNC( ITEMNEW ) { hb_retnl( ( ULONG ) hb_itemNew( hb_param( 1, HB_IT_ANY ) ) ); } HB_FUNC( ITEMRELEASE ) { hb_retl( hb_itemRelease( ( PHB_ITEM ) hb_parnl( 1 ) ) ); } #pragma ENDDUMP
|
|
|
|
| Администратор
|
Пост N: 700
Зарегистрирован: 23.05.05
|
|
Отправлено: 10.01.08 23:51. Заголовок: xHarbour + bcc - ok ..
xHarbour + bcc - ok xHarbour + pelles c - ok xHarbour + ms vc - ok с поправкой на преобразование типов open watcom и mingw все не соберу, поскольку надо качать новые версии этих компиляторов, а в последние дни запарка, некогда dmc aka digital mars - тоже есть проблемка при сборке xHb
|
|
|
|
| постоянный участник
|
Пост N: 45
Зарегистрирован: 25.12.07
|
|
Отправлено: 11.01.08 13:42. Заголовок: Pasha пишет: xHarbo..
Pasha пишет: цитата: | xHarbour + bcc - ok xHarbour + pelles c - ok xHarbour + ms vc - ok с поправкой на преобразование типов |
| Ok. Спасибо. А по типам, я сейчас начинаю писать "нармальный" загрузчик и постараюсь все аккуратно сделать.
|
|
|
|
| постоянный участник
|
Пост N: 46
Зарегистрирован: 25.12.07
|
|
Отправлено: 14.01.08 18:36. Заголовок: Здравствуйте. Предл..
Здравствуйте. Предлагаю обсудить будущую демо-программу. Нормально ли, допустим, демо по Alaska? Нужно делать два демо, отдельно для Harbour и отдельно для xHarbour? Или можно совместить? И так далее.. В принципе, завтра-послезавтра я буду (тьфу-тьфу) уже готов давать "материал" для демо. Вроде бы все "укладывается" достаточно хорошо. Спирин Сергей.
|
|
|
|
| модератор
|
Пост N: 685
Зарегистрирован: 25.05.05
|
|
Отправлено: 14.01.08 19:05. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | Нормально ли, допустим, демо по Alaska? |
| Да, возможности впечатляют Sergey Spirin пишет: цитата: | Нужно делать два демо, отдельно для Harbour и отдельно для xHarbour? Или можно совместить? |
| IMHO можно совместить, поскольку демо-программа будет содержать, по-видимому, только ее исходники
|
|
|
|
| постоянный участник
|
Пост N: 47
Зарегистрирован: 25.12.07
|
|
Отправлено: 14.01.08 19:18. Заголовок: gfilatov пишет: Да,..
gfilatov пишет: цитата: | Да, возможности впечатляют |
| Ну, я имел в виду Xbase-часть, первое окошко... gfilatov пишет: цитата: | IMHO можно совместить, поскольку демо-программа будет содержать, по-видимому, только ее исходники |
| То есть, одно консольное? Содержимое, наверное, как для аляски, аналогично: FastDemo.prg - собственно демо FastRepH.prg - класс frReportManager и все что к нему прилагается. FrSystH.dll - триал FRH-a (по аналогии FRAX - для аляски) Спирин Сергей.
|
|
|
|
| модератор
|
Пост N: 686
Зарегистрирован: 25.05.05
|
|
Отправлено: 14.01.08 19:33. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | То есть, одно консольное? |
| Ну почему же только консольное? Возможности Харбор GUI библиотек позволяют воспроизвести интерфейс демо по Alaska в полном объеме
|
|
|
|
| постоянный участник
|
Пост N: 48
Зарегистрирован: 25.12.07
|
|
Отправлено: 14.01.08 19:39. Заголовок: gfilatov пишет: Воз..
gfilatov пишет: цитата: | Возможности Харбор GUI библиотек позволяют воспроизвести интерфейс демо по Alaska в полном объеме |
| А в поставке Харбор-а есть GUI-библиотеки? Я не знал, ткните носом. Если же Вы о дополнительных, сторонних, то честно говоря, получится опять ветвление... А в хХарбуре есть стандартная GUI-библиотека?
|
|
|
|
| постоянный участник
|
Пост N: 361
Зарегистрирован: 09.10.06
|
|
Отправлено: 14.01.08 21:38. Заголовок: Я б перед выпуском d..
Я б перед выпуском demo показал знающим людям реализацию класса frReportManager, а то та Harbour реализация которую мне довелось видеть, мне что-то не очень.. Относительно ветвлений, весь Harbour сплошное ветвление
|
|
|
|
| постоянный участник
|
Пост N: 49
Зарегистрирован: 25.12.07
|
|
Отправлено: 15.01.08 00:32. Заголовок: Петр пишет: Я б пер..
Петр пишет: цитата: | Я б перед выпуском demo показал знающим людям реализацию класса frReportManager, а то та Harbour реализация которую мне довелось видеть, мне что-то не очень.. |
| Разослал первую, еще сильно сырую версию для того чтобы посмотреть, что там "не очень". Давайте обсуждать. И давайте знакомьте со "знающими людьми" В принципе, все сделал калькой с алясочного варианта, различаются загрузка и инициализация только. По большому счету, весь класс - это wrapper вокруг наборов экспотируемых функций в Frsyst. За год продаж FRAX-а не припомню претензий по реализации этого класса. Петр пишет: цитата: | Относительно ветвлений, весь Harbour сплошное ветвление |
| А вот здесь займу жесткую позицию. Демо должно скачаться и скомпилироваться "сразу", без всяких "докачайте еще", "исправьте, впишите .. и.т. д. ", "доинсталлируйте"... Поэтому, все-таки, думаю пока, что демо должно быть два. Консольное, которое скомпилируется и в Харбур и в xХарбур. И Графика - только для xХарбур (я правильно понимаю, что оно, GUI хоть какое-то, там есть в комплекте?). Потом, когда будут "базовые демки" можно будет, конечно, "красоты" навести в более "привязанных" вариантах. Это уже факультативно. Ok. От тех, кто берется за какой-то из вариантов, жду письма. Спирин Сергей.
|
|
|
|
| постоянный участник
|
Пост N: 50
Зарегистрирован: 25.12.07
|
|
Отправлено: 15.01.08 09:44. Заголовок: Кстати, даже на глаз..
Кстати, даже на глаз видно, что отчет "More Complex" в 30 страниц, стротися как миниму раза в два быстрее, чем в Аляске. Так что, "движок" Харбура не плох, можно сказать.
|
|
|
|
|
| Администратор
|
Пост N: 704
Зарегистрирован: 23.05.05
|
|
Отправлено: 15.01.08 10:26. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | Поэтому, все-таки, думаю пока, что демо должно быть два. Консольное, которое скомпилируется и в Харбур и в xХарбур. И Графика - только для xХарбур (я правильно понимаю, что оно, GUI хоть какое-то, там есть в комплекте?). |
| ИМХО программу, аналогичную демо по Аляске, демонстрирующиую возмижности fr, можно давать в собранном виде. А уже сам fastreph.prg и frsyst.dll, наверное, с функциональными ограничениями, свойственными демке - в сырцах для сборки Сборку fastdemo с minigui возлагать на пользователя не стоит, очень уж Харбор "ветвист". Не включать же скажем minigui.lib для всех возможных комбинаций. Да и сама процедура сборки, как показывает опыт, для многих вызывает сложности Хотя, если Григорий сделает демку, использующую только костяк minigui, можно давать и сырцы
|
|
|
|
| постоянный участник
|
Пост N: 51
Зарегистрирован: 25.12.07
|
|
Отправлено: 15.01.08 11:37. Заголовок: Pasha пишет: ИМХО п..
Pasha пишет: цитата: | ИМХО программу, аналогичную демо по Аляске, демонстрирующиую возмижности fr, можно давать в собранном виде. А уже сам fastreph.prg и frsyst.dll, наверное, с функциональными ограничениями, свойственными демке - в сырцах для сборки |
| В собранном(?).... Пожалуй, но это, наверное, относится к "факультативным" вариантам. Демо должно быть с исходникам, потому что оно демонстрирует как достичь того или другого, показывает в коде как это сделать... Мне, что-то, никто так и не ответил на вопрос, "Голый" xHarbour содержит какие-то графические примитивы или нет? Там, окошко, кнопка, список, радиокнопки? По большому счету больше то и не надо. Pasha пишет: цитата: | Сборку fastdemo с minigui возлагать на пользователя не стоит, очень уж Харбор "ветвист". |
| Вот я и про тоже самое и говорю. А состав демо я уже говорил, он будет такой: FastDemoH.prg - собственно демо FastRepH.prg - класс frReportManager и все что к нему прилагается. FrSystH.dll - триал FRH-a Как кстати компилируется вчерашний вариант? И что Вы думаете о реализации frReportManager? Спирин Сергей.
|
|
|
|
| постоянный участник
|
Пост N: 362
Зарегистрирован: 09.10.06
|
|
Отправлено: 15.01.08 11:45. Заголовок: Мои замечания по пов..
Мои замечания по поводу реализации класса Я лично никогда не использую "_" в названии переменных или методов класса, поскольку Harbour сам по себе делает (или может делать - в зависимости от параметров сборки) class decoration для ASSIGN / ACCESS. VAR frSystHandle init 0 // Handle of FastReport-dll следует обьявить как CLASSVAR, т.е. сделать не переменной экземпляра, а переменной класса. METHOD SetTitle .. METHOD SetTitle(cTitle) class frReportManager RETURN Call_Func_C_I(::_SetTitle, cTitle) = 1 лучше обьявлять как METHOD SetTitle INLINE ( Call_Func_C_I(::_SetTitle, cTitle) == 1 )
|
|
|
|
| модератор
|
Пост N: 687
Зарегистрирован: 25.05.05
|
|
Отправлено: 15.01.08 11:57. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | "Голый" xHarbour содержит какие-то графические примитивы или нет? |
| Содержит только для текстового режима (так же как и "голый" Harbour). Но с помощью графического терминала WVT возможно получить псевдо-GUI Sergey Spirin пишет: цитата: | Как кстати компилируется вчерашний вариант? |
| Полный порядок.
|
|
|
|
| модератор
|
Пост N: 688
Зарегистрирован: 25.05.05
|
|
Отправлено: 15.01.08 12:00. Заголовок: Петр пишет: Мои зам..
Петр пишет: цитата: | Мои замечания по поводу реализации класса |
| Полностью согласен с замечаниями (предложениями ), высказанными Петром.
|
|
|
|
| Администратор
|
Пост N: 705
Зарегистрирован: 23.05.05
|
|
Отправлено: 15.01.08 12:01. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | Мне, что-то, никто так и не ответил на вопрос, "Голый" xHarbour содержит какие-то графические примитивы или нет? Там, окошко, кнопка, список, радиокнопки? По большому счету больше то и не надо. |
| Харбор (оба) содержит терминал gtwvt/gtwvg, который включает в себя основные контролы windows в качестве надстройки над текстовым режимом. Если использовать его, то можно сделать демку и без минигуи, используя базовую поставку. Демо графических примитивов gtwvt xharbour\contrib\wvtgui\samples harbour\contrib\hbgtwvg\tests Мне кажется, этих средств будет вполне достаточно для рисования главного окошка демки цитата: | Как кстати компилируется вчерашний вариант? И что Вы думаете о реализации frReportManager? |
| Поскольку вариант оказался "ночным", я его вчера не увидел Прогоню сегодня вечером
|
|
|
|
| Администратор
|
Пост N: 706
Зарегистрирован: 23.05.05
|
|
Отправлено: 15.01.08 12:07. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | И давайте знакомьте со "знающими людьми" |
| Попробуйте написать на comp.lang.xharbour Думаю, там многие тоже заинтересуются Вашим продуктом
|
|
|
|
| постоянный участник
|
Пост N: 52
Зарегистрирован: 25.12.07
|
|
Отправлено: 15.01.08 12:37. Заголовок: Петр пишет: Мои зам..
Петр пишет: цитата: | Мои замечания по поводу реализации класса |
| Ну, я боялся, что что-то переделывавать придется А "марафет" давайте, конечно, наводить вместе. Я только за! Не забывайте также , что я совсем не клипперист, и клиппером владею где-то (как кто-то подметил) "на уровне Summer87" Тем не менее, внутренне я не совсем с замечаниями согласен... Петр пишет: цитата: | Я лично никогда не использую "_" в названии переменных или методов класса, поскольку Harbour сам по себе делает (или может делать - в зависимости от параметров сборки) class decoration для ASSIGN / ACCESS. |
| Так уж сложилось, что префикс "_" для переменных во всех языках обычно означает "системность", "закрытость" и т.п. Что, собственно, мне инадо. Для лучшей читабельности мне нужно, чтобы имя переменной совпадало с именем метода "к которому принадлежит". Какаие еще могут быть хорошие варианты? Это с одной стороны. С другой, Harbour (как и С) использует в своих целях "_", но никогда не слышал чтобы они запрещали это делать другим Петр пишет: цитата: | VAR frSystHandle init 0 // Handle of FastReport-dll следует обьявить как CLASSVAR, т.е. сделать не переменной экземпляра, а переменной класса. |
| Здесь есть нюансы. Нюансы с многопоточностью. Например по аляске. Сейчас FRAX не полностью ее поддерживает. Но есть обходной путь, которым некоторые алясковцы пользуются. Накопировать несколько dll-ей. И создать несколько объектов "от" разных dll. Ваше предложение такой путь пресекает. Петр пишет: цитата: | METHOD SetTitle(cTitle) class frReportManager RETURN Call_Func_C_I(::_SetTitle, cTitle) = 1 лучше обьявлять как METHOD SetTitle INLINE ( Call_Func_C_I(::_SetTitle, cTitle) == 1 ) |
| Что-то не пойму, чем INLINE лучше? Код прямо в объявлении класса? Это быстрее работает? Точное сравнение поставлю "==", но тоже хочется узнать, чем оно лучше?
|
|
|
|
| постоянный участник
|
Пост N: 53
Зарегистрирован: 25.12.07
|
|
Отправлено: 15.01.08 12:53. Заголовок: Pasha пишет: Попроб..
Pasha пишет: цитата: | Попробуйте написать на comp.lang.xharbour Думаю, там многие тоже заинтересуются Вашим продуктом |
| Заинтересуются то понятно. Но я не хочу привлекать буржуев к написанию и тестированию.
|
|
|
Ответов - 201
, стр:
1
2
3
4
5
6
7
8
9
10
11
All
[только новые]
|
|