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


Пост 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 [только новые]





Не зарегистрирован
Зарегистрирован: 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


Спасибо: 0 
Администратор




Пост 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


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


Пост 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. Спасибо. А по типам, я сейчас начинаю писать "нармальный" загрузчик и постараюсь все аккуратно сделать.

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


Пост N: 46
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 14.01.08 18:36. Заголовок: Здравствуйте. Предл..


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

Предлагаю обсудить будущую демо-программу. Нормально ли, допустим, демо по Alaska? Нужно делать два демо, отдельно для Harbour и отдельно для xHarbour? Или можно совместить? И так далее..

В принципе, завтра-послезавтра я буду (тьфу-тьфу) уже готов давать "материал" для демо. Вроде бы все "укладывается" достаточно хорошо.


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

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




Пост N: 685
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 14.01.08 19:05. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Нормально ли, допустим, демо по Alaska?


Да, возможности впечатляют

Sergey Spirin пишет:

 цитата:
Нужно делать два демо, отдельно для Harbour и отдельно для xHarbour? Или можно совместить?


IMHO можно совместить, поскольку демо-программа будет содержать, по-видимому, только ее исходники

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


Пост 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 - для аляски)

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







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




Пост N: 686
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 14.01.08 19:33. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
То есть, одно консольное?


Ну почему же только консольное?
Возможности Харбор GUI библиотек позволяют воспроизвести интерфейс демо по Alaska в полном объеме

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


Пост N: 48
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 14.01.08 19:39. Заголовок: gfilatov пишет: Воз..


gfilatov пишет:

 цитата:
Возможности Харбор GUI библиотек позволяют воспроизвести интерфейс демо по Alaska в полном объеме



А в поставке Харбор-а есть GUI-библиотеки? Я не знал, ткните носом.

Если же Вы о дополнительных, сторонних, то честно говоря, получится опять ветвление... А в хХарбуре есть стандартная GUI-библиотека?

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


Пост N: 361
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 14.01.08 21:38. Заголовок: Я б перед выпуском d..


Я б перед выпуском demo показал знающим людям реализацию класса frReportManager, а то та Harbour реализация которую мне довелось видеть, мне что-то не очень..

Относительно ветвлений, весь Harbour сплошное ветвление



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


Пост N: 49
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 15.01.08 00:32. Заголовок: Петр пишет: Я б пер..


Петр пишет:

 цитата:
Я б перед выпуском demo показал знающим людям реализацию класса frReportManager, а то та Harbour реализация которую мне довелось видеть, мне что-то не очень..



Разослал первую, еще сильно сырую версию для того чтобы посмотреть, что там "не очень". Давайте обсуждать.

И давайте знакомьте со "знающими людьми"

В принципе, все сделал калькой с алясочного варианта, различаются загрузка и инициализация только. По большому счету, весь класс - это wrapper вокруг наборов экспотируемых функций в Frsyst. За год продаж FRAX-а не припомню претензий по реализации этого класса.

Петр пишет:

 цитата:
Относительно ветвлений, весь Harbour сплошное ветвление



А вот здесь займу жесткую позицию. Демо должно скачаться и скомпилироваться "сразу", без всяких "докачайте еще", "исправьте, впишите .. и.т. д. ", "доинсталлируйте"...

Поэтому, все-таки, думаю пока, что демо должно быть два. Консольное, которое скомпилируется и в Харбур и в xХарбур. И Графика - только для xХарбур (я правильно понимаю, что оно, GUI хоть какое-то, там есть в комплекте?).

Потом, когда будут "базовые демки" можно будет, конечно, "красоты" навести в более "привязанных" вариантах. Это уже факультативно.

Ok. От тех, кто берется за какой-то из вариантов, жду письма.

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


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


Пост N: 50
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 15.01.08 09:44. Заголовок: Кстати, даже на глаз..


Кстати, даже на глаз видно, что отчет "More Complex" в 30 страниц, стротися как миниму раза в два быстрее, чем в Аляске. Так что, "движок" Харбура не плох, можно сказать.

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




Пост 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, можно давать и сырцы

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


Пост 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?


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



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


Пост 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 )












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




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


Sergey Spirin пишет:

 цитата:
"Голый" xHarbour содержит какие-то графические примитивы или нет?


Содержит только для текстового режима (так же как и "голый" Harbour).
Но с помощью графического терминала WVT возможно получить псевдо-GUI

Sergey Spirin пишет:

 цитата:
Как кстати компилируется вчерашний вариант?


Полный порядок.

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




Пост N: 688
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 15.01.08 12:00. Заголовок: Петр пишет: Мои зам..


Петр пишет:

 цитата:
Мои замечания по поводу реализации класса


Полностью согласен с замечаниями (предложениями ), высказанными Петром.



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




Пост 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?



Поскольку вариант оказался "ночным", я его вчера не увидел
Прогоню сегодня вечером

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




Пост N: 706
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 15.01.08 12:07. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
И давайте знакомьте со "знающими людьми"



Попробуйте написать на comp.lang.xharbour
Думаю, там многие тоже заинтересуются Вашим продуктом


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


Пост 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 лучше? Код прямо в объявлении класса? Это быстрее работает?

Точное сравнение поставлю "==", но тоже хочется узнать, чем оно лучше?



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


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


Pasha пишет:

 цитата:
Попробуйте написать на comp.lang.xharbour
Думаю, там многие тоже заинтересуются Вашим продуктом



Заинтересуются то понятно. Но я не хочу привлекать буржуев к написанию и тестированию.


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