Автор | Сообщение |
|
| постоянный участник
|
Пост 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
[только новые]
|
|
|
| модератор
|
Пост N: 667
Зарегистрирован: 25.05.05
|
|
Отправлено: 25.12.07 18:15. Заголовок: C чего начать?
|
|
|
|
| постоянный участник
|
Пост N: 2
Зарегистрирован: 25.12.07
|
|
Отправлено: 25.12.07 18:21. Заголовок: OK. Спасибо. :sm29: ..
OK. Спасибо. А насчет, есть ли потребность в профессиональном генераторе отчетов? Много ли пользователей, испытывающих такую потребность? Спирин Сергей.
|
|
|
|
| модератор
|
Пост N: 668
Зарегистрирован: 25.05.05
|
|
Отправлено: 25.12.07 18:35. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | есть ли потребность в профессиональном генераторе отчетов? |
| Конечно, есть! Sergey Spirin пишет: цитата: | Много ли пользователей, испытывающих такую потребность? |
| Точно не скажу, каждый отвечает на этот вопрос индивидуально...
|
|
|
|
| постоянный участник
|
Пост N: 3
Зарегистрирован: 25.12.07
|
|
Отправлено: 25.12.07 18:49. Заголовок: Насчет API? Какой ..
Насчет API? Какой у Харбура ран-тайм? Набор dll? Или возможен полность "независимый" exe (раз компилируется на С)? В Xbase, например, это набор dll, а API - это функции экспортируемые этими dll. Спирин Сергей.
|
|
|
|
| |
Пост N: 90
Зарегистрирован: 12.06.06
|
|
Отправлено: 25.12.07 19:14. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | А насчет, есть ли потребность в профессиональном генераторе отчетов? |
| Я тоже поддерживаю Григория насчет необходимости генератора отчетов !!!
|
|
|
|
| модератор
|
Пост N: 669
Зарегистрирован: 25.05.05
|
|
Отправлено: 25.12.07 19:24. Заголовок: i3t4j6 пишет: возмо..
i3t4j6 пишет: цитата: | возможен полность "независимый" exe ? |
| Да, именно так (это основной режим сборки программы).
|
|
|
|
| постоянный участник
|
Пост N: 4
Зарегистрирован: 25.12.07
|
|
Отправлено: 26.12.07 09:40. Заголовок: gfilatov пишет: Да,..
gfilatov пишет: цитата: | Да, именно так (это основной режим сборки программы). |
| Есть и неосновной режим? Хотя, по Вашей ссылке вижу, что можно "спокойно" использовать С. А значит, во внешнюю dll я могу передать просто указатели на точки входа в функции... Вопрос, все-таки, на какие функции. Есть ли все-таки С-API? Если я не ошибаюсь, то в самом Клиппере С-API был. Меня интересуют наиболее универсальные, например, в Xbase: _conCallPa() - вызов любой функции _conGetXXX - возвращает значение любой переменной и т. д. Подобное было и в Клиппере (для С расширений), что-то должно быть и в Харбуре? Устанавливать и экпериментировать начну на праздниках, наверное, сейчас же хотелось бы больше информации "для размышления". Поэтому буду признателен за такую информацию и за любые советы. Кстати, "просто" Харбур - это только консоль? Спирин Сергей.
|
|
|
|
| модератор
|
Пост N: 670
Зарегистрирован: 25.05.05
|
|
Отправлено: 26.12.07 11:09. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: Да, это сборка программы с harbour.dll, при которой экзешник будет небольшого размера (подобно VB), но потребление памяти значительно вырастет. Sergey Spirin пишет: Конечно, есть. Но это вопрос к сишникам... Паша, поможешь? Sergey Spirin пишет: цитата: | "просто" Харбур - это только консоль? |
| Верно. Для создания графического интерфейса потребуется дополнительная GUI-библиотека: таковых есть несколько, как платных, так и бесплатных. Почитай на этом форуме, они упоминаются довольно часто...
|
|
|
|
| модератор
|
Пост N: 671
Зарегистрирован: 25.05.05
|
|
Отправлено: 26.12.07 11:13. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | буду признателен за ... любые советы |
| Рекомендую посетить мою страничку, посвященную бесплатной библиотеке MiniGUI для Харбора: http://hmg.narod.ru К сожалению, русскоязычных ресурсов, посвященных Харбору, немного...
|
|
|
|
| постоянный участник
|
Пост 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 продукт стоящий...некоторого времени Спасибо. Спирин Сергей.
|
|
|
|
| Администратор
|
Пост 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, исключив лишнее и добавив те библиотеки, которые необходимы. Так я поступаю В целом: поскольку проект открытый, любой программист может использовать подходящий ему режим
|
|
|
|
|
| модератор
|
Пост 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 продукт стоящий |
| Да, знаем...
|
|
|
|
| постоянный участник
|
Пост N: 6
Зарегистрирован: 25.12.07
|
|
Отправлено: 26.12.07 12:49. Заголовок: Pasha пишет: Принци..
Pasha пишет: цитата: | Принцип такой: вместо семейства функций клиппер ..... |
| Ok. Спасибо. А какое "типичное" использование этих функций. И, как думаете, возможен ли описанный мною выше способ использования? То есть, я загружаю dll, передаю в нее все точки входа, и далее вызываю эти фунуции из dll? Спирин Сергей.
|
|
|
|
| постоянный участник
|
Пост N: 7
Зарегистрирован: 25.12.07
|
|
Отправлено: 26.12.07 13:17. Заголовок: gfilatov пишет: Одн..
gfilatov пишет: цитата: | Однозначно - нет, это Расширенный Харбор-компилятор, который разрабатывается параллельно Харбору. |
| Пожалуй, здесь мне надо быть осторожней Скажем так, если Fast будет использовать только 10-15 С-API функций, которые изначально присутствуют в Харбур, то он будет совместим с FiveWin или c Xailer и с другими? Спирин Сергей.
|
|
|
|
| модератор
|
Пост 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-архивы
|
|
|
|
| Администратор
|
Пост 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, ...) Есть возможность работы с массивами харбор, или с другими специфическими типами данных
|
|
|
|
| Администратор
|
Пост N: 677
Зарегистрирован: 23.05.05
|
|
Отправлено: 26.12.07 13:56. Заголовок: gfilatov пишет: Но ..
gfilatov пишет: цитата: | Но можно сформулировать проще: если FastReport будет представлять из себя обычную сишную DLL, то доступ к такой библиотеке будет возможен из любого Win-приложения, независимо от того, написано оно на Си, [х]Харборе, VB или Дельфи. |
| Да, кстати, это мысль Можно разделить fr на 2 части: маленькая lib будет содержать харбор-функцию написанную на С, созданную через HB_FUNC. предназначенную для взаимодействия с хаобор-программой. А основная часть (fr.dll) может быть уже полностью независима от харбора
|
|
|
|
| Администратор
|
Пост N: 678
Зарегистрирован: 23.05.05
|
|
Отправлено: 26.12.07 14:01. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | "а стоит ли заморачиваться, есть ли здесь рынок и т.д." |
| У нас это малоизвестный продукт, но в некоторых странах в силу обстоятельств Харбор очень популярен: в основном это Латинская Америка
|
|
|
|
| постоянный участник
|
Пост 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. Спирин Сергей.
|
|
|
|
| постоянный участник
|
Пост N: 9
Зарегистрирован: 25.12.07
|
|
Отправлено: 26.12.07 14:32. Заголовок: Pasha пишет: Из хар..
Pasha пишет: цитата: | Из харбор-программы вызов этой функции: FUNCNAME(p1, p2, p3, ...) |
| Спасибо. Единственное, меня больше интересует "движение в другую сторону" FastReport - это одна Дельфи-dll (для Xbase - FrSyst.dll ). Понятно, что я могу написать в ней любую функцию и эту функцию вызвать из харбур-программы. Пока мне не очевидно (хотя уже одну версию говорил) как сделать наоборот Как мне например из этой dll вызвать .. ну, DbSkip() ?
|
|
|
|
| Администратор
|
Пост N: 679
Зарегистрирован: 23.05.05
|
|
Отправлено: 26.12.07 14:49. Заголовок: dbSkip() может наход..
dbSkip() может находится как в основной exe, так и в harbour.dll. Из основного exe-модуля харбор-программы dbSkip() вызвать имхо невозможно, из harbour.dll - без проблем, если при создании frsyst.dll линковать ее вместе с Harbour.dll Поскольку для Харбора допустимы оба режима: как с dll, так и без, а большинство пользователей с dll не заморачиваются, будем считать, что напрямую из frsyst вызвать dbSkip нельзя Значит, надо dbSkip() вызывать из интерфейсной lib, которая будет прилинковываться к харбор-программе независимо от ее режима, и взаимодействовать с frsyst.dll
|
|
|
|
|
| постоянный участник
|
Пост N: 332
Зарегистрирован: 09.10.06
|
|
Отправлено: 26.12.07 15:01. Заголовок: C-API Harbour hbvm.h..
C-API [x]Harbour hbvm.h extern HB_EXPORT void hb_vmDo( USHORT uiParams ); /* invoke the virtual machine */ extern HB_EXPORT void hb_vmFunction( USHORT uiParams ); /* executes a function */ extern HB_EXPORT void hb_vmSend( USHORT uiParams ); /* sends a message to an object */ extern HB_EXPORT PHB_ITEM hb_vmEvalBlock( PHB_ITEM pBlockItem ); /* executes passed codeblock with no arguments */ /* executes passed codeblock with variable number of arguments */ extern HB_EXPORT PHB_ITEM hb_vmEvalBlockV( PHB_ITEM pBlockItem, ULONG ulArgCount, ... ); extern HB_EXPORT PHB_ITEM hb_vmEvalBlockOrMacro( PHB_ITEM pItem ); /* executes codeblock or macro pointed by given item */ extern HB_EXPORT void hb_vmDestroyBlockOrMacro( PHB_ITEM pItem ); /* destroy codeblock or macro in given item */ Маленький пример, в [x]Harbour (prg level) определена функция _ONTIMEREVENTS VOID CALLBACK TTimerProc( HWND hWnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime) { if ( ! pSymbolEvents ) pSymbolEvents = hb_dynsymSymbol( hb_dynsymGet( "_ONTIMEREVENTS" ) ); // есть такая функция или нет if ( pSymbolEvents ) // если есть { hb_vmPushSymbol( pSymbolEvents ); //перед выполнением помещаем p-code функции в стек hb_vmPushNil(); // обязательно hb_vmPushLong( ( LONG ) hWnd ); //передаем первый параметр числовой в данном случае hb_vmPushLong( uMsg ); // передаем второй параметр hb_vmPushLong( idEvent ); // передаем третий hb_vmPushLong( dwTime ); // передаем 4- параметр hb_vmDo( 4 ); // виртуальная машина [x]Harbour выполняет код помещенный в стек - что значит 4 обьяснять смысла нет к результату выполнения можно достучаться hb_param( -1, HB_IT_LONG) или проще hb_parnl( -1 ) } }
|
|
|
|
| Администратор
|
Пост N: 680
Зарегистрирован: 23.05.05
|
|
Отправлено: 26.12.07 15:02. Заголовок: Кстати, к слову Мне ..
Кстати, к слову Мне кажется, что сейчас пользователей у Харбора куда больше, чем у Alaska xBase
|
|
|
|
| постоянный участник
|
Пост N: 333
Зарегистрирован: 09.10.06
|
|
Отправлено: 26.12.07 15:06. Заголовок: Pasha пишет: Из осн..
Pasha пишет: цитата: | Из основного exe-модуля харбор-программы dbSkip() вызвать имхо невозможно |
| Довольно спорное утверждение
|
|
|
|
| постоянный участник
|
Пост N: 10
Зарегистрирован: 25.12.07
|
|
Отправлено: 26.12.07 15:07. Заголовок: Pasha пишет: Из осн..
Pasha пишет: цитата: | Из основного exe-модуля харбор-программы dbSkip() вызвать имхо невозможно |
| Здесь не факт, хотя нюансы могут быть. Почему не передать указатель на dbSkip(), а в dll присвоить прототипу... Но действительно, больше интересно: цитата: | Значит, надо dbSkip() вызывать из интерфейсной lib, которая будет прилинковываться к харбор-программе независимо от ее режима, и взаимодействовать с frsyst.dll |
| Отсюда вопрос: Как будет выглядеть функция на С, вызывающая любую харбур-функцию. Типа: CallAnyHarbourFunc(cFuncName, xListOfParametrs) возврат xValue ?
|
|
|
|
| постоянный участник
|
Пост N: 334
Зарегистрирован: 09.10.06
|
|
Отправлено: 26.12.07 15:13. Заголовок: Pasha пишет: Мне ка..
Pasha пишет: цитата: | Мне кажется, что сейчас пользователей у Харбора куда больше, чем у Alaska xBase |
| Мне тоже, но часть этих пользователей пользуется не коммерческими, а GPL разработками и заставить их что-то купить - это значит оскорбить их религиозные чувства
|
|
|
|
| постоянный участник
|
Пост N: 11
Зарегистрирован: 25.12.07
|
|
Отправлено: 26.12.07 15:19. Заголовок: Петр пишет: Мне тож..
Петр пишет: цитата: | Мне тоже, но часть этих пользователей пользуется не коммерческими, а GPL разработками и заставить их что-то купить - это значит оскорбить их религиозные чувства |
| В переписке с испанцами, я переспрашивал их. Говорят купим Но честно говоря, я колебался (и сейчас колеблюсь) именно из-за этого...
|
|
|
|
| Администратор
|
Пост N: 681
Зарегистрирован: 23.05.05
|
|
Отправлено: 26.12.07 15:20. Заголовок: Чтобы напрямую испол..
Чтобы напрямую использовать из frsyst harbour vm, надо ее по крайней мере прилинковать А это значит, что vm будет содержаться и в основном exe, и в frsyst.dll, что не есть хорошо, а наоборот, очень плохо. А пример вызова харбор-функции Петр дал. Педед вызовом в стек харбора надо затолкать параметры функции. Но может быть стоит вызывать не харбор-функцию, а ее аналог на C, к примеру, средства rdd Что касается dbSkip, это может выглядеть так: #include "hbapi.h" #include "hbapirdd.h" ... AREAP pArea = ( AREAP ) hb_rddGetCurrentWorkAreaPointer(); long lRecToSkip = ...; if( pArea ) SELF_SKIP( pArea, lRecToSkip );
|
|
|
|
| Администратор
|
Пост N: 682
Зарегистрирован: 23.05.05
|
|
Отправлено: 26.12.07 15:23. Заголовок: Петр пишет: Pasha п..
Петр пишет: цитата: | Pasha пишет: цитата: Из основного exe-модуля харбор-программы dbSkip() вызвать имхо невозможно Довольно спорное утверждение |
| Я имел в виду вызов из внешней dll (frsyst) функции, находящейся в основном exe-модуле программы Как это сделать, я не представляю
|
|
|
|
| постоянный участник
|
Пост N: 12
Зарегистрирован: 25.12.07
|
|
Отправлено: 26.12.07 16:03. Заголовок: Pasha пишет: Я имел..
Pasha пишет: цитата: | Я имел в виду вызов из внешней dll (frsyst) функции, находящейся в основном exe-модуле программы Как это сделать, я не представляю |
| Чисто теоретически это просто. Я не буду "мучится" и писать пример на С (я все-таки дельфист ). Поэтому пример на Паскале, он язык читабельный: EXE: type TCallBack = procedure (P: Pointer); stdcall; procedure MMsg(P: PChar); begin ShowMessage(StrPas(P)); end; procedure TForm1.Button1Click(Sender: TObject); var CallBack: TCallBack; H: THandle; begin H := LoadLibrary('Project2.dll'); @CallBack := GetProcAddress(H, 'CallBack'); CallBack(@MMsg); <----------------------------передаем адрес процедуры MMsg FreeLibrary(H); end; ------------------------- DLL: type TMsgProc = procedure (P: PChar); procedure CallBack(P: Pointer); stdcall; export; var MsgProc: TMsgProc; begin @MsgProc := P; <-------------------------------------------- присваиваем адрес MsgProc(PChar('Это dll вызвала процедуру в exe !!!!')); <-------- и вызываем end; exports CallBack name 'CallBack'; -------------------------------------------------------------------- Ну вот, только что проверил в Delphi, все OK. Оттого, что EXE будет С-ишное, это ничего не поменяет. То есть, в MMsg можно по моей задумке поместить: CallAnyHarbourFunc(cFuncName, xListOfParametrs) -> xValue ... Понятно, что не все так просто, параметры и т. д. , но если прототип заработает, то это уже.. неплохо будет.... Спирин Сергей.
|
|
|
|
| постоянный участник
|
Пост N: 13
Зарегистрирован: 25.12.07
|
|
Отправлено: 26.12.07 16:40. Заголовок: Меня все-таки интере..
Меня все-таки интересуют возможные подходы реализации функции: CallAnyHarbourFunc(cFuncName, xListOfParametrs) -> xValue ... Возможно, реализация этой функции может быть чисто на Харбуре, плюс какая-то С-оболочка к ней , адрес этой оболочки и будет передаваться в Fast? Хотя, в Аляске есть просто С-API функция - _conCallPa(). Может что-то подобное есть и Харбуре? Спирин Сергей.
|
|
|
|
|
| постоянный участник
|
Пост N: 335
Зарегистрирован: 09.10.06
|
|
Отправлено: 26.12.07 16:44. Заголовок: Чем не устраивает то..
Чем не устраивает то, что я написал?
|
|
|
|
| Администратор
|
Пост N: 683
Зарегистрирован: 23.05.05
|
|
Отправлено: 26.12.07 16:45. Заголовок: Такой способ по-види..
Такой способ по-видимому будет работать В этом случае я советую обратить внимание на то, что из-за трансляции средствами препроцессора (#define) настоящее имя функции может быть другим Надо внимательно смотреть на описание каждой функции в *.h
|
|
|
|
| постоянный участник
|
Пост N: 336
Зарегистрирован: 09.10.06
|
|
Отправлено: 26.12.07 16:53. Заголовок: Sergey Spirin пишет:..
|
|
|
|
| постоянный участник
|
Пост N: 14
Зарегистрирован: 25.12.07
|
|
Отправлено: 26.12.07 17:10. Заголовок: Петр пишет: Чем не ..
Петр пишет: цитата: | Чем не устраивает то, что я написал? |
| Почему не устраивает? Спасибо. Кстати, если можно еще раз "выжимку" про VM. Почему это плохо использовать (по словам Pasha)? И, это будет работать только с harbour.dll? Или в "монолитном" exe тоже? Простите, я действительно пока здесь новичек. Спирин Сергей.
|
|
|
|
| постоянный участник
|
Пост N: 15
Зарегистрирован: 25.12.07
|
|
Отправлено: 26.12.07 17:17. Заголовок: Петр пишет: Поэтому..
Петр пишет: Честно говоря, тоже не понял Вашу ссылку, мне для примера на Паскале быстрее набросать просто, да и проверить... Но все-равно, спасибо, увидел, что в Харбуре загружать dll намного удобнее чем в той же Аляске
|
|
|
|
| Администратор
|
Пост N: 684
Зарегистрирован: 23.05.05
|
|
Отправлено: 26.12.07 17:21. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | Кстати, если можно еще раз "выжимку" про VM. Почему это плохо использовать (по словам Pasha)? И, это будет работать только с harbour.dll? Или в "монолитном" exe тоже? |
| Плохо иметь две vm. В этом случает одна из них работать не будет А если vm будет содержаться в харбор-программе (exe), и будет механизм вызова функций vm из сторонней dll, то ничего в этом плохого нет
|
|
|
|
| постоянный участник
|
Пост N: 16
Зарегистрирован: 25.12.07
|
|
Отправлено: 26.12.07 17:31. Заголовок: Pasha пишет: А если..
Pasha пишет: цитата: | А если vm будет содержаться в харбор-программе (exe), и будет механизм вызова функций vm из сторонней dll, то ничего в этом плохого нет |
| OK. Тогда это действительно хороший вариант. В семействе hb_vmXXX - функций, наверное, есть и для работы с переменными, массивами, объектами? Если так, то пожалуй, это то что мне надо
|
|
|
|
| постоянный участник
|
Пост N: 337
Зарегистрирован: 09.10.06
|
|
Отправлено: 26.12.07 17:43. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | Почему это плохо использовать (по словам Pasha)? И, это будет работать только с harbour.dll? Или в "монолитном" exe тоже? |
| Пример который я привел корректно работает в "монолитном" exe. Я не знаю, что имел ввиду Pasha, собственно он использует для работы xHarbour,- я Harbour. Могу лишь добавить, что по планам разработчиков Harbour, функции можно будет вызывать и использовать не только из dll, но и из другого exe файла, также можно будет использовать библиотеки hrb, но это будет в Harbour 2.0. Я Pascal не очень, понял лишь, что это вызов функции из dll, и подумал, что Вам будет интересно узнать об использовании dll в Harbour (в xHarbour функции немного иначе называются), .
|
|
|
|
| постоянный участник
|
Пост N: 338
Зарегистрирован: 09.10.06
|
|
Отправлено: 26.12.07 17:55. Заголовок: Pasha пишет: Плохо ..
Pasha пишет: цитата: | Плохо иметь две vm. В этом случает одна из них работать не будет |
| Это в лучшем случае, скорее всего программа просто вылетит с GPF. Sergey Spirin пишет: цитата: | В семействе hb_vmXXX - функций, наверное, есть и для работы с переменными, массивами, объектами? Если так, то пожалуй, это то что мне надо |
| Это все конечно есть но не только в hb_vm, а и в hb_item*, что которые собственно и являются аналогами _con* в Alaska.
|
|
|
|
| постоянный участник
|
Пост N: 17
Зарегистрирован: 25.12.07
|
|
Отправлено: 26.12.07 18:07. Заголовок: Петр пишет: В семей..
Петр пишет: цитата: | В семействе hb_vmXXX - функций, наверное, есть и для работы с переменными, массивами, объектами? Если так, то пожалуй, это то что мне надо Это все конечно есть но не только в hb_vm, а и в hb_item*, что которые собственно и являются аналогами _con* в Alaska. |
| Отлично. Спасибо большое. Похоже мои переспективы на праздники проясняются Спирин Сергей.
|
|
|
|
|
| Администратор
|
Пост N: 685
Зарегистрирован: 23.05.05
|
|
Отправлено: 26.12.07 18:08. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | В семействе hb_vmXXX - функций, наверное, есть и для работы с переменными, массивами, объектами? Если так, то пожалуй, это то что мне надо |
| Это уже другое семейство функций Для C харбор-переменная - это структура типа Item Для них есть свои функции Для работы с массивами - C функции hb_array*() Для работы с Private и Public переменными - функции работы через таблицу символов Но можно без всего этого обойтись, роаботая с подсистемами харбора посредством вызова С-функций (не задействуя vm), а структуры типа item (переменные) использовать только для приема значений параметров. И, насколько я представляю, для генератора отчетов могут быть полезны параметры типа массив
|
|
|
|
| постоянный участник
|
Пост N: 18
Зарегистрирован: 25.12.07
|
|
Отправлено: 26.12.07 18:48. Заголовок: Pasha пишет: Это уж..
Pasha пишет: цитата: | Это уже другое семейство функций Для C харбор-переменная - это структура типа Item.... |
| ОK. Спасибо. Направление понял.
|
|
|
|
| постоянный участник
|
Пост N: 339
Зарегистрирован: 09.10.06
|
|
Отправлено: 26.12.07 19:56. Заголовок: Несколько советов 1)..
Несколько советов 1) Следует помнить о различиях в C-API Harbour и xHarbour 2) Следует помнить о различиях в C-API xHarbour версии 0.9х, 1.0.0 и 1.1.х 3) Следует помнить о довольно частой смене версии p-code для xHarbour 4) Следует помнить о том, что разработчики Harbour уже обьявили о возможной будущей несовместимости на бинарном уровне с пр.версиями 5) Тестирование желательно проводить с несколькими C-компиляторами, не только bcc и может что-то еще
|
|
|
|
| постоянный участник
|
Пост N: 19
Зарегистрирован: 25.12.07
|
|
Отправлено: 27.12.07 11:39. Заголовок: Петр пишет: Несколь..
Петр пишет: Вариантов много получается Пожалуй, если все пойдет нормально, я сделаю так. Сам ограничусь вариантом Harbour+BCC, и снова подниму тему "не бескорыстных" помошников , которые и будут тестировать и поправлять меня в различных "конфигурациях!. Спирин Сергей.
|
|
|
|
| модератор
|
Пост N: 674
Зарегистрирован: 25.05.05
|
|
Отправлено: 27.12.07 11:55. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | снова подниму тему "не бескорыстных" помощников |
| Удачи Вам в конвертации! Если потребуется помощь в написании GUI демки, аналогичной Вашей FastDemo для xBase++, то я смогу помочь
|
|
|
|
| постоянный участник
|
Пост N: 20
Зарегистрирован: 25.12.07
|
|
Отправлено: 27.12.07 11:59. Заголовок: gfilatov пишет: .....
gfilatov пишет: Отлично, буду иметь в виду.
|
|
|
|
| постоянный участник
|
Пост N: 383
Зарегистрирован: 12.09.06
|
|
Отправлено: 30.12.07 20:04. Заголовок: gfilatov пишет: мы ..
gfilatov пишет: цитата: | мы можем из Харбора работать с бесплатной библиотекой UnRar.Dll, позволяющей разархивировать любые RAR-архивы |
| А пример можно выложить ? Sergey Spirin пишет: цитата: | FastReport продукт стоящий. |
| Поддерживаю !!!
|
|
|
|
| модератор
|
Пост N: 675
Зарегистрирован: 25.05.05
|
|
Отправлено: 30.12.07 21:00. Заголовок: Andrey пишет: приме..
Andrey пишет: Пример использования этой DLL есть в поставке HMG Extended, папка samples\Advanced\UnRar
|
|
|
|
| постоянный участник
|
Пост N: 21
Зарегистрирован: 25.12.07
|
|
Отправлено: 04.01.08 17:31. Заголовок: Здравствуйте. Что ..
Здравствуйте. Что ж, могу сказать, что пока "процесс портирования" идет даже более гдадко, чем я предполагал, тьфу-тьфу Но как я уже упоминал, у меня все "крутится" по Харбур + BCC. Кто может проверить "компилируемость и работоспособность" тестовых примеров на других связках, пожалуйста напишите мне в "мыло" - spirin [at] paritetsoft [dot] ru Я вышлю пример, который хотел бы проверить. Заранее, спасибо . Спирин Сергей.
|
|
|
|
| постоянный участник
|
Пост N: 385
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.01.08 01:38. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | Я вышлю пример, который хотел бы проверить. |
| Высылай мне на мыло 30195@mail.ru !
|
|
|
|
| Администратор
|
Пост N: 689
Зарегистрирован: 23.05.05
|
|
Отправлено: 05.01.08 09:25. Заголовок: Поздравляю с успехом..
Поздравляю с успехом Я могу проверить для xHarbour для следующих C-компиляторов (кроме, естественно, bcc): free MS Visual C++ Toolkit 2003 Open Watcom C++ Digital Mars C++ mingw32 Pelles C Harbour я собирал только для bcc, но можно попробовать собрать и для остальных поддерживаемых компиляторов (некоммерческих под win32) tpe2 (at) mail.ru
|
|
|
|
| постоянный участник
|
Пост N: 22
Зарегистрирован: 25.12.07
|
|
Отправлено: 05.01.08 12:57. Заголовок: Списибо всем, предл..
Списибо всем, предложившим помощь. Уже несколько человек обратило мое внимание на неаккуратность кода загрузки тестовой dll. Абсолютно согласен, "в свое оправдание" могу заметить, что этот код, ну явно временный, набросанный "лишь бы" загрузить эту dll. Просто я сейчас занимаюсь именно Дельфи-стороной, написанием всех классов взаимодействия и т.д. А это тысячи строк, на все пока времени не хватает А на Харбор-стороне тоже я думаю будет класс (frReportManager), то есть, "теперешнего" кода не будет. Еще раз всем спасибо Спирин Сергей.
|
|
|
|
| Администратор
|
Пост N: 690
Зарегистрирован: 23.05.05
|
|
Отправлено: 05.01.08 13:54. Заголовок: Связка xHarbour+bcc ..
Связка xHarbour+bcc - ok Отстальное я посмотрю позже, так как у меня все эти компиляторы дома Хотел проверить работу xHarbour с harbour.dll, но на $Id: ChangeLog,v 1.5812 2007/12/17 16:48:42 likewolf Exp $ программа не работает: не загружает rdd Это проблема xHarbour, возможно уже пофиксено, у меня под рукой сейчас нет последних сырцов
|
|
|
|
| Администратор
|
Пост N: 691
Зарегистрирован: 23.05.05
|
|
Отправлено: 05.01.08 14:09. Заголовок: Запустил тест в связ..
Запустил тест в связке Harbour+bcc, собранный с harbour-b32.dll Приложение запустилось, но при нажатии на кнопку Open выдается сообщение Could not convert variant of type (Null) into type (String)
|
|
|
|
| постоянный участник
|
Пост N: 23
Зарегистрирован: 25.12.07
|
|
Отправлено: 05.01.08 14:23. Заголовок: Pasha пишет: Запуст..
Pasha пишет: цитата: | Запустил тест в связке Harbour+bcc, собранный с harbour-b32.dll Приложение запустилось, но при нажатии на кнопку... |
| Ok. Сразу два вопроса: - С каким "calling convention" экспортирует функции harbour-b32.dll? Если не cdecl, то придется мне здесь параметризировать что-ли... - Как собственно мне скомпилировать, запустить и проверить с harbour-b32.dll, что для этого надо? Спирин Сергей.
|
|
|
|
| постоянный участник
|
Пост N: 24
Зарегистрирован: 25.12.07
|
|
Отправлено: 05.01.08 18:11. Заголовок: Pasha пишет: Запуст..
Pasha пишет: цитата: | Запустил тест в связке Harbour+bcc, собранный с harbour-b32.dll Приложение запустилось, но при нажатии на кнопку Open выдается сообщение Could not convert variant of type (Null) into type (String) |
| Догадался "дописать" harbour-b32.lib (все-таки delphi-c здесь в идеологии сильно расходятся). У меня, правда, ошибки другие, но в основном ситуация ясна: Со стеком, слава богу, везде cdecl, здесь "дурного ветвления" не будет. Но harbour-b32.dll содержит лишь некоторую часть С-API, и система "не понимает" вложенных вызовов одной части из другой. Получается, что для универсальности я должен использовать только harbour-b32.dll-часть API. Чтож попробуем Спирин Сергей.
|
|
|
|
| постоянный участник
|
Пост N: 340
Зарегистрирован: 09.10.06
|
|
Отправлено: 05.01.08 18:51. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | Догадался "дописать" harbour-b32.lib (все-таки delphi-c здесь в идеологии сильно расходятся). У меня, правда, ошибки другие |
| @set HB_INSTALL=C:\harbour @set HB_BIN_INSTALL=C:\harbour\bin @set HB_LIB_INSTALL=C:\harbour\lib @set HB_INC_INSTALL=C:\harbour\include %HB_BIN_INSTALL%\harbour 2.prg -n -i%HB_INC_INSTALL% %HB_BIN_INSTALL%\harbour FastRepH.prg -n -i%HB_INC_INSTALL% bcc32 -c -O2 -d -I%HB_INC_INSTALL% 2.c FastRepH.c %HB_INSTALL%\source\vm\mainwin.c @echo c0w32.obj + > b32.bc @echo 2.obj + >> b32.bc @echo FastRepH.obj + >> b32.bc @echo mainwin.obj, + >> b32.bc @echo 3.exe,, + >> b32.bc @echo %HB_LIB_INSTALL%\harbour-b32.lib + >> b32.bc @echo %HB_LIB_INSTALL%\debug.lib + >> b32.bc @echo %HB_LIB_INSTALL%\vm.lib + >> b32.bc @echo %HB_LIB_INSTALL%\rtl.lib + >> b32.bc @echo %HB_LIB_INSTALL%\gtwin.lib + >> b32.bc @echo %HB_LIB_INSTALL%\lang.lib + >> b32.bc @echo %HB_LIB_INSTALL%\rdd.lib + >> b32.bc @echo %HB_LIB_INSTALL%\macro.lib + >> b32.bc @echo %HB_LIB_INSTALL%\pp.lib + >> b32.bc @echo %HB_LIB_INSTALL%\dbfntx.lib + >> b32.bc @echo %HB_LIB_INSTALL%\dbfcdx.lib + >> b32.bc @echo %HB_LIB_INSTALL%\dbffpt.lib + >> b32.bc @echo %HB_LIB_INSTALL%\hbsix.lib + >> b32.bc @echo %HB_LIB_INSTALL%\common.lib + >> b32.bc @echo %HB_LIB_INSTALL%\codepage.lib + >> b32.bc @echo cw32.lib + >> b32.bc @echo import32.lib, >> b32.bc ilink32 -Tpe -Gn @b32.bc if exist *.c del *.c if exist *.obj del *.obj if exist *.bak del *.bak if exist *.tds del *.tds if exist *.ilc del *.ilc if exist *.ild del *.ild if exist *.ilf del *.ilf if exist *.ils del *.ils if exist *.map del *.map А так?
|
|
|
|
| постоянный участник
|
Пост N: 25
Зарегистрирован: 25.12.07
|
|
Отправлено: 05.01.08 19:39. Заголовок: Петр пишет: А так? ..
Петр пишет: Ничего не изменилось. Ошибки те же. Да и зачем такие "сложности". В общем-то, проблему я решил как уже и говорил - использовать только harbour-b32.lib-С-API подможество. То есть, при компоновке с harbour-b32.dll моя dll будет работать только с ней. Спирин Сергей.
|
|
|
|
| постоянный участник
|
Пост N: 341
Зарегистрирован: 09.10.06
|
|
Отправлено: 05.01.08 20:08. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | Ничего не изменилось. Ошибки те же. Да и зачем такие "сложности" |
| Sergey Spirin пишет: цитата: | Догадался "дописать" harbour-b32.lib |
| Куда Вы дописали harbour-b32.lib? Sergey Spirin пишет: цитата: | использовать только harbour-b32.lib-С-API подможество. То есть, при компоновке с harbour-b32.dll моя dll будет работать только с ней. |
| Если Вас не затруднит, что Вы подразумеваете под "harbour-b32.lib-С-API подможество"?
|
|
|
|
| постоянный участник
|
Пост N: 26
Зарегистрирован: 25.12.07
|
|
Отправлено: 05.01.08 20:34. Заголовок: Петр пишет: Куда Вы..
Петр пишет: цитата: | Куда Вы дописали harbour-b32.lib? |
| В 2.bat-файл. Эта фраза была Павлу. Я просто действительно не знал как скомпилировать проект с использованием harbour-b32.dll. Но после сам "догадался дописать": bcc32 -O2 -d........2.c FastRepH.c harbour-b32.lib... Петр пишет: цитата: | Если Вас не затруднит, что Вы подразумеваете под "harbour-b32.lib-С-API подможество"? |
| Очень просто, это набор функций, который экспортируется harbour-b32.dll. Например, я начал дебажить ошибки и увидел "Access violation" на вызове hb_stackPopReturn. Поиск этой функции в harbour-b32.lib/dll результата не дал. В результате меняю эту функцию на аналогичную hb_xvmRetValuе, но убедившись, что она "присутствует" в harbour-b32.lib. Работает. То есть, похоже при использование harbour-b32.dll смешанный вызов функций и из harbour-b32.dll и из exe приводит к "чехарде" в стеке. Значит для универсальности мне нужно при harbour-b32.dll использовать только ее. При монолитном exe это все неважно. Спирин Сергей.
|
|
|
|
| постоянный участник
|
Пост N: 342
Зарегистрирован: 09.10.06
|
|
Отправлено: 06.01.08 00:57. Заголовок: Сергей, Pasha пишет..
Сергей, Pasha пишет: цитата: | Запустил тест в связке Harbour+bcc, собранный с harbour-b32.dll Приложение запустилось, но при нажатии на кнопку Open выдается сообщение Could not convert variant of type (Null) into type (String) |
| Вы написали: цитата: | Догадался "дописать" harbour-b32.lib (все-таки delphi-c здесь в идеологии сильно расходятся). У меня, правда, ошибки другие |
| Потом я привел скрипт, в результате которого все происходит, как написал выше Паша "Приложение запустилось, но при нажатии на кнопку Open выдается сообщение Could not convert variant of type (Null) into type (String)". Какие были другие ошибки и откуда это сообщение Could not convert variant of type (Null) into type (String), я так понимаю - это работа testlib.dll? Теперь о подмножествах, разработчикам рекомендуется использовать функции обьявленные как extern HB_EXPORT. Работать со стеком напрямую или использовать функции "для внутреннего употребления" нельзя, т.е. можно, но никто не будет выслушивать претензии после очередного изменения структуры стека, например после ожидаемого введения поддержки "strong type" переменных или MT. Для коммерческого продукта такая ситуация недопустима.
|
|
|
|
| постоянный участник
|
Пост N: 27
Зарегистрирован: 25.12.07
|
|
Отправлено: 06.01.08 01:22. Заголовок: Петр пишет: Какие б..
Петр пишет: цитата: | Какие были другие ошибки и откуда это сообщение Could not convert variant of type (Null) into type (String), я так понимаю - это работа testlib.dll? |
| Ok. Сейчас вышлю новый "рабочий вариант". А ошибка "Could not conver" конечно чисто дельфишная, но у меня действительно были "Access violation" и с моим и с Вашим вариантами bat-ника, что странно, но разберемся Петр пишет: цитата: | Теперь о подмножествах, разработчикам рекомендуется использовать функции обьявленные как extern HB_EXPORT. |
| Супер! Спасибо, вот это действительно для меня ценная информация. Даже проверил сейчас, описываемый мною предыдущий пример: extern void hb_stackPopReturn( void ); extern HB_EXPORT void hb_xvmRetValue( void ); То есть, вот он действующий ориентир. Еще раз спасибо :) Спирин Сергей.
|
|
|
|
| постоянный участник
|
Пост N: 28
Зарегистрирован: 25.12.07
|
|
Отправлено: 06.01.08 16:06. Заголовок: Здравствуйте. Подс..
Здравствуйте. Подскажите, откуда и как брать "ультрасвежий" Харбор. Оказалось, что уже используется beta4 = 1.0.0, но не могу ее найти. Что такое SVN и т.д.? И про возможные "непонятки" при компиляции исходников, если они есть. Спасибо. Спирин Сергей.
|
|
|
|
| Администратор
|
Пост N: 692
Зарегистрирован: 23.05.05
|
|
Отправлено: 06.01.08 17:55. Заголовок: xHarbour можно выкач..
xHarbour можно выкачать с помощью CVS-клиента по адресу: :pserver:anonymous@xharbour.cvs.sourceforge.net:/cvsroot/xharbour protocol :pserver user name: anonymous module: xharbour Бесплатный клиент под windows: http://www.tortoisecvs.org Harbour: с помощью SVN-клиента, URL: https://harbour-project.svn.sourceforge.net/svnroot/harbour-project/trunk Бесплатный клиент под windows: http://tortoisesvn.net Для сборки понадобится bison, версии 2.1 Еще пару недель назад я собирал с помощью старенького bison 1.28, но теперь он не поддерживается Ссылка http://puzzle.dl.sourceforge.net/sourceforge/gnuwin32/bison-2.1.exe Еще понадобится файл bison.simple Его можно взять на www.harbour_project.org или на www.xharbour.org
|
|
|
|
| постоянный участник
|
Пост N: 29
Зарегистрирован: 25.12.07
|
|
Отправлено: 06.01.08 18:00. Заголовок: Pasha пишет: Беспла..
Pasha пишет: Вроде я уже и сам все это нашел, но вот этот клиент упрямо у меня требует пароля Хотя вроде не должен.
|
|
|
|
| постоянный участник
|
Пост N: 344
Зарегистрирован: 09.10.06
|
|
Отправлено: 06.01.08 20:23. Заголовок: Небольшое уточнение ..
Небольшое уточнение - для Harbour URL: https://harbour-project.svn.sourceforge.net/svnroot/harbour-project/trunk/harbour
|
|
|
|
| Администратор
|
Пост N: 693
Зарегистрирован: 23.05.05
|
|
Отправлено: 07.01.08 11:44. Заголовок: У кого установлен MS..
У кого установлен MS Visual Studio, просьба. Можно бросить в меня nmake.exe из этого пакета ? Адрес есть в этой теме. С dll, если есть такие, которые нужны для его работы Нужен для сборки xHarbour. У меня есть какой-то nmake 1.5, но это уж больно старая версия. Не понимает синтаксис makefile.vc
|
|
|
|
| постоянный участник
|
Пост N: 345
Зарегистрирован: 09.10.06
|
|
Отправлено: 07.01.08 12:06. Заголовок: От VS2003 подойдет?..
От VS2003 подойдет?
|
|
|
|
| Администратор
|
Пост N: 694
Зарегистрирован: 23.05.05
|
|
Отправлено: 07.01.08 14:23. Заголовок: Думаю да Как раз too..
Думаю да Как раз tooklit 2003-года выпуска Не распознаюся команды вида: .c.obj:: То есть подряд 2 даоеточия
|
|
|
|
| Администратор
|
Пост N: 695
Зарегистрирован: 23.05.05
|
|
Отправлено: 07.01.08 16:00. Заголовок: Спасибо, получил, ра..
Спасибо, получил, работает Петр, если можно, пришлите еще lib.exe. Года 3 назад я собирал xHb под MS VC toolkit, но с тех пор так далеко запрятал эти утилиты (nmake, lib), что и сам не найду SDK у меня есть
|
|
|
|
| Администратор
|
Пост N: 696
Зарегистрирован: 23.05.05
|
|
Отправлено: 07.01.08 22:41. Заголовок: xHarbour + ms vc - o..
xHarbour + ms vc - ok Только у компилятотра msvc более строгий контроль типов, поэтому надо поправить: HB_FUNC( PRLOAD ) { FrLib = LoadLibrary("Testlib.dll"); DllF = (DllFunc)GetProcAddress((HMODULE) FrLib , (LPCSTR) "CallBack" ); InitEng = (InitEngFunc)GetProcAddress((HMODULE) FrLib , (LPCSTR) "InitEngine"); } HB_FUNC( PRUNLOAD ) { FreeLibrary((HMODULE) FrLib); } Иначе выдается ошибка. И для остальных вызовов winapi типы должны строго соотвествовать обьявленным
|
|
|
|
| постоянный участник
|
Пост N: 30
Зарегистрирован: 25.12.07
|
|
Отправлено: 08.01.08 01:05. Заголовок: Pasha пишет: xHarbo..
Pasha пишет: цитата: | xHarbour + ms vc - ok Только у компилятотра msvc более строгий контроль типов, поэтому надо поправить: |
| Ok. Спасибо. Буду иметь в виду. Еще вот такая проблемка. Доступ к переменным (memvars) я организовал через hb_memvarGetValue/hb_memvarSetValue, но они как Вы можете убедиться не HB_EXPORT. Что-то, ломаю голову и не могу понять как без них сделать мне функции GetValue/SetValue для переменных? Спирин Сергей.
|
|
|
|
| постоянный участник
|
Пост N: 386
Зарегистрирован: 12.09.06
|
|
Отправлено: 08.01.08 12:21. Заголовок: Работаю только на xH..
Работаю только на xHarbour'e исключительно из-за совместимости (почти 100%) с Clipper'om ! Использую терминалку gtwin и gtwvt ! Собрал проект hbmake 2.bc -e При сборке под xHarbour Compiler build 0.99.70 (SimpLex) выдает: Error E2451 FASTREPH.PRG 92: Undefined symbol 'hb_stackPopReturn' in function HB_FUN_INITENGINE Что делать ?
|
|
|
|
| постоянный участник
|
Пост N: 31
Зарегистрирован: 25.12.07
|
|
Отправлено: 08.01.08 13:15. Заголовок: Andrey пишет: Error..
Andrey пишет: цитата: | Error E2451 FASTREPH.PRG 92: Undefined symbol 'hb_stackPopReturn' in function HB_FUN_INITENGINE Что делать ? |
| Несколько странно, так как hb_stackPopReturn объявлена в hbstack.h. Но в любом случае, hb_stackPopReturn я уже "выбросил" так как она не HB_EXPORT. Сейчас вышлю посвежее вариант.
|
|
|
|
| постоянный участник
|
Пост N: 346
Зарегистрирован: 09.10.06
|
|
Отправлено: 08.01.08 14:37. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | Что-то, ломаю голову и не могу понять как без них сделать мне функции GetValue/SetValue для переменных? |
| Это можно сделать так, как душе угодно :) Разнообразное API не только помогает, но иногда сбивает с толку. Пример PROCEDURE main() PRIVATE mvp := "123" ? mvp ? __mvget( "mvp" ) ? my__mvget( "mvp" ) ? ? __mvput( "mvp", "456" ) ? ? mvp ? __mvget( "mvp" ) ? my__mvget( "mvp" ) ? ?my__mvput( "mvp", "123" ) ? ? mvp ? __mvget( "mvp" ) ? my__mvget( "mvp" ) ? RETURN #pragma BEGINDUMP #include <windows.h> #include "hbapi.h" #include "hbapiitm.h" #include "hbvm.h" #include "hbstack.h" static PHB_DYNS pDynsGet = 0; static PHB_DYNS pDynsPut = 0; HB_FUNC( MY__MVGET ) { if ( ! pDynsGet ) pDynsGet = hb_dynsymFindName( "__MVGET" ); if ( pDynsGet && hb_dynsymIsFunction(pDynsGet) ) { PHB_ITEM itm; hb_vmPushDynSym( pDynsGet ); hb_vmPushNil(); hb_vmPushString( hb_parc(1), hb_parclen(1) ); hb_vmDo( 1 ); itm = hb_itemClone( hb_param( -1, HB_IT_ANY) ); #ifdef __XHARBOUR__ hb_itemReturn( itm ); hb_itemRelease( itm ); #else hb_itemReturnRelease( itm ); #endif } } HB_FUNC( MY__MVPUT ) { PHB_ITEM xNewValue = hb_param( 2, HB_IT_ANY ); if ( ! pDynsPut ) pDynsPut = hb_dynsymFindName( "__MVPUT" ); if ( pDynsPut && hb_dynsymIsFunction(pDynsPut) ) { PHB_ITEM itm; hb_vmPushDynSym( pDynsPut ); hb_vmPushNil(); hb_vmPushString( hb_parc(1), hb_parclen(1) ); hb_vmPush( xNewValue ); hb_vmDo( 2 ); itm = hb_itemClone( hb_param( -1, HB_IT_ANY) ); hb_itemReturnRelease( itm ); } } #pragma ENDDUMP
|
|
|
|
| постоянный участник
|
Пост N: 387
Зарегистрирован: 12.09.06
|
|
Отправлено: 08.01.08 20:01. Заголовок: Опять не собирается ..
Опять не собирается под хХарбором xHarbour Compiler build 0.99.70 (SimpLex) Copyright 1999-2006, http://www.xharbour.org http://www.harbour-project.org/ Compiling 'FASTREPH.PRG'... Lines 182, Functions/Procedures 2 Generating C source output to 'obj\FASTREPH.c'... Done. Building object module for 'obj\FASTREPH.c' using C compiler 'BCC32' as defined in 'Z:\xHARBOUR\BIN\harbour.cfg'... Exec: BCC32 -c -D__EXPORT__ -IZ:\xHARBOUR\include -d -LZ:\xHARBOUR\lib -oobj\FASTREPH.obj obj\FASTREPH.c Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland obj\FASTREPH.c: Error E2451 FASTREPH.PRG 62: Undefined symbol 'hb_itemPutSymbol' in function HB_FUN_INITENGINE *** 1 errors in Compile ***
|
|
|
|
| постоянный участник
|
Пост N: 32
Зарегистрирован: 25.12.07
|
|
Отправлено: 08.01.08 20:18. Заголовок: Andrey пишет: Опять..
Andrey пишет: цитата: | Опять не собирается под хХарбором |
| Вообще, если Вы были внимательны, то уже несколько человек сообщили что под xHarbour все собирается, поэтому думаю, что проблема какая-то у Вас, с путями, lib, и т.п.... 'hb_itemPutSymbol' объявлена в hbapiitm.h и она - HB_EXPORT.
|
|
|
|
| постоянный участник
|
Пост N: 33
Зарегистрирован: 25.12.07
|
|
Отправлено: 08.01.08 23:19. Заголовок: Петр пишет: Это мож..
Петр пишет: цитата: | Это можно сделать так, как душе угодно :) Разнообразное API не только помогает, но иногда сбивает с толку. Пример.... |
| А какие еще есть варианты ;-) За вариант, спасибо, если ничего другого не "придумается", то буду использовать. Но, просто, доступ к переменным через выполнения функций prg-уровня, как то не кажется самым оптимальным решением :) Кстати, заглянул в реализацию __mvget/__mvset и даже улыбнулся увидев: hb_memvarGetValue/hb_memvarSetValue, то есь то, что сейчас менять и приходится.
|
|
|
|
| постоянный участник
|
Пост N: 349
Зарегистрирован: 09.10.06
|
|
Отправлено: 08.01.08 23:40. Заголовок: Сергей, это самое оп..
Сергей, это самое оптимальное и безопасное решение -__MVPUT и __MVGET, публичные функции, описанные в справочной документации, и в этом случае Вам все равно, как они устроены, лишь бы результат правильный возвращали. Все остальные функции тоже из официального API. Да, возможно изящностью такое решение сильно не отличается, да и быстродействием - но Вам этого и не нужно, Вам нужен надежный код который бы работал вне зависимости от смены версий. К тому же легко написать функцию prg-уровня, которая возвращает результат макрокомпиляции и вообще под что угодно. Я Вам уже писал, что Harbour ожидают серьезные нововведения, в часности поддержка MT, к примеру * harbour/include/hbstack.h * harbour/source/vm/estack.c * harbour/source/vm/hvm.c + added support for thread specific data located on HVM stack Now it's possible to allocate static variables which are local to thread. Such variables are allocated on HVM stack and automatically destroyed. To declare new TSD variable use: HB_TSD_NEW( <name>, <size>, <init>, <destruct> ) <name> - name of variable which holds TSD handler и все, что из этого следует. Так что решать Вам. можете хоть с HB_API_INTERNAL экспериментировать и работать напрямую со стеком и таблицей символов без всяких функций. Не, ну конечно hb_itemClone на hb_itemCopy поменять можно
|
|
|
|
| постоянный участник
|
Пост N: 34
Зарегистрирован: 25.12.07
|
|
Отправлено: 09.01.08 00:11. Заголовок: Петр пишет: Сергей,..
Петр пишет: цитата: | Сергей, это самое оптимальное и безопасное решение -__MVPUT и __MVGET... |
| Ок. Убедили. Петр пишет: цитата: | Так что решать Вам. можете хоть с HB_API_INTERNAL экспериментировать и работать напрямую со стеком и таблицей символов без всяких функций. |
| Нет-нет. У меня нет особенного желания сделать все на "сверхнизком" уж уровне. Просто я поначалу для FastReport (script) начал делать все по аналогии реализации prg-уровня. :)) А выяснилось, что надо чуть повыше взять, поэтому сейчас в стадии "перестройки мышления". Спасибо.
|
|
|
|
| постоянный участник
|
Пост N: 388
Зарегистрирован: 12.09.06
|
|
Отправлено: 09.01.08 12:24. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | Вообще, если Вы были внимательны, |
| Вы знаете, вообще то я на эти вещи обращаю внимание, и считаю некорректно так обращаться. Вы попросили помощи в тестировании продукта, что я честно стараюсь делать. Sergey Spirin пишет: цитата: | то уже несколько человек сообщили что под xHarbour все собирается, поэтому думаю, что проблема какая-то у Вас, с путями, lib, и т.п.... |
| Нет с ними никаких проблем, все правильно !!! У других могут быть отличия, я собираю на дистрибутиве скачаном с сайта, без дополнительных библиотек. Причина выявлена из вашего нижеперечисленного комментария. Sergey Spirin пишет: цитата: | 'hb_itemPutSymbol' объявлена в hbapiitm.h и она - HB_EXPORT. |
| Оказывается hb_itemPutSymbol не перечислена в hbapiitm.h входящем в xHarbour Compiler build 0.99.70 и xHarbour Compiler build 1.0.0 а в MiniGUI есть !!! Так что ваши действия по совместимости, господин Спирин !
|
|
|
|
| постоянный участник
|
Пост N: 35
Зарегистрирован: 25.12.07
|
|
Отправлено: 09.01.08 12:39. Заголовок: Andrey пишет: Вы зн..
Andrey пишет: цитата: | Вы знаете, вообще то я на эти вещи обращаю внимание, и считаю некорректно так обращаться. |
| Извините, совсем не хотел Вас как-то задеть. Для меня, наверное, такая сверхмножественная вариативность возможной сборки очень непривычна. Еще раз простите. Andrey пишет: цитата: | Оказывается hb_itemPutSymbol не перечислена в hbapiitm.h входящем в xHarbour Compiler build 0.99.70 и xHarbour Compiler build 1.0.0 а в MiniGUI есть !!! Так что ваши действия по совместимости, господин Спирин ! |
| Ok. Уже, "выкидываем" hb_itemPutSymbol. Тем более, я посмотрел уже дельфийский код, я ее не использую, по инерции осталась в передаче точки входа. Через часик, с Вашего разрешения, пришлю посвежее версию. Спирин Сергей.
|
|
|
|
| постоянный участник
|
Пост N: 36
Зарегистрирован: 25.12.07
|
|
Отправлено: 09.01.08 15:33. Заголовок: Петр пишет: Сергей,..
Петр пишет: цитата: | Сергей, это самое оптимальное и безопасное решение -__MVPUT и __MVGET |
| А нет ли аналогичной универсальной функции, которая вернет макрос от строки? Спирин Сергей.
|
|
|
|
| постоянный участник
|
Пост N: 351
Зарегистрирован: 09.10.06
|
|
Отправлено: 09.01.08 16:14. Заголовок: Нет, по крайней мере..
Нет, по крайней мере - я не знаю. Зато можно создать свою сборку Harbour с запретом вызова макрокомпилятора Здесь прийдется писать UDF.
|
|
|
|
| постоянный участник
|
Пост N: 37
Зарегистрирован: 25.12.07
|
|
Отправлено: 09.01.08 16:44. Заголовок: Петр пишет: Нет, по..
Петр пишет: цитата: | Нет, по крайней мере - я не знаю. |
| Ситуация у меня сейчас такая. Остались всего три функции, которые я использую и которые не HB_EXPORT. Это: hb_macroCompile, hb_macroRun, hb_macroDelete То есть, работа с макросами. При этом эти функции "прекрасно" работают у меня как в монолитном exe, так и с harbour.dll. То есть, проблемы с harbour.dll этих функций не касались. У меня такое ощущение, что я могу их оставить. Как думаете? Кстати, написал на уровне следующее: FUNCTION __MacroCall( cString ) RETURN &(cString) И стал вызывать как обычно через hb_vmDo.... и в варианте с harbour.dll проблемы появились (!!!). Стала появляться нестабильная ошибка "No exported method EVAL" ??? Опять таки количество употреблений hb_macroCompile, hb_macroRun, hb_macroDelete по кодам высокое.... Хочется мне их оставить, что скажете?
|
|
|
|
| постоянный участник
|
Пост N: 352
Зарегистрирован: 09.10.06
|
|
Отправлено: 09.01.08 17:28. Заголовок: Я думаю, что большой..
Я думаю, что большой проблемы не будет Если подключать RDD, т.е.работать с базами данных - эти функции обязательно используются.
|
|
|
|
| постоянный участник
|
Пост N: 353
Зарегистрирован: 09.10.06
|
|
Отправлено: 09.01.08 17:38. Заголовок: Но попробуйте еще за..
Но попробуйте еще заменить вызов vmDo(1) на vmFunction(1) и потестировать.
|
|
|
|
| постоянный участник
|
Пост N: 38
Зарегистрирован: 25.12.07
|
|
Отправлено: 09.01.08 20:16. Заголовок: Что-то не нашел функ..
Что-то не нашел функцию DbRefresh(). Какой аналог используется обычно в Харборе?
|
|
|
|
| постоянный участник
|
Пост N: 354
Зарегистрирован: 09.10.06
|
|
Отправлено: 09.01.08 20:38. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | то-то не нашел функцию DbRefresh() |
| А что она делает?
|
|
|
|
| постоянный участник
|
Пост N: 39
Зарегистрирован: 25.12.07
|
|
Отправлено: 09.01.08 20:47. Заголовок: Петр пишет: А что о..
Петр пишет: Сбрасывает локальный клиентский кэш рабочей области и перечитывает его из реальных данных. Например, например, кто-то по сети поменял запись, у другого "висит" старая версия на экране. После DbRefresh() должна "приехать" новая.
|
|
|
|
| постоянный участник
|
Пост N: 355
Зарегистрирован: 09.10.06
|
|
Отправлено: 09.01.08 20:54. Заголовок: DbSkip(0) flushes an..
DbSkip(0) flushes and refreshes the internal database buffers. All changes made to the record become visible without moving the record pointer in either direction.
|
|
|
|
| постоянный участник
|
Пост N: 40
Зарегистрирован: 25.12.07
|
|
Отправлено: 09.01.08 23:24. Заголовок: Петр пишет: DbSkip(..
Петр пишет: цитата: | DbSkip(0) flushes and refreshes... |
| Ok. Спасибо.
|
|
|
|
| постоянный участник
|
Пост N: 41
Зарегистрирован: 25.12.07
|
|
Отправлено: 10.01.08 12:28. Заголовок: Здравствуйте, Выс..
Здравствуйте, Выслал окончательный (надеюсь :)) вариант теста. Но что-то у меня сегодня почта "подглючмвает", поэтому, если кто-то не получил, напишите пожалуйста. Спирин Сергей.
|
|
|
|
| постоянный участник
|
Пост N: 42
Зарегистрирован: 25.12.07
|
|
Отправлено: 10.01.08 16:42. Заголовок: Здравствуйте, еще ра..
Здравствуйте, еще раз. Начинаю "прощупывать" реализацию класса менеджера отчетов. Отсюда следующие вопросы. - Похоже синтаксис классов/объектов у Харбура и Аляски несколько различаются. В связи с этим не подскажите где что посмотреть, какие-то примеры и т.д. - Есть ли типовые средства загрузки "сторонних" dll в Харборе? Везде, что не найду, речь о "Харбор"-dll-ях. Или сторонние принято грузить с помощью С? В той же Аляске есть DllLoad(), DllCall(). Иди я просто не вижу? Спирин Сергей.
|
|
|
|
| постоянный участник
|
Пост N: 356
Зарегистрирован: 09.10.06
|
|
Отправлено: 10.01.08 17:19. Заголовок: Судя по тому, что кн..
Судя по тому, что кнопка Open блокируется - проблемы с memory leak остаются? Я не буду говорить о том, что синтаксис классов у Harbour и xHarbour различаются, достаточно сказать, что в самом Harbour доступно несколько "стилей" ООП , при этом их вполне можно смешивать. Как пример для "подражания" я рекомендую посмотреть реализацию класса TXMLNode из библиотеки xhb (harbour\contrib), особенно обратить внимание на взаимодействие с C level. Типовых средств загрузки "сторонних" dll в Harbour нет - Harbour кросплатформенное средство, а работа с so в Linux отличается от работы с dll Windows или OS\2. Условно - xHarbour больше ориентирован на Win, он включает в себя функции для работы с "сторонними" dll. Если ищете универсальное решение - я советую обратить внимание на исходники библиотек Dll and CallDll из состава MiniGUI Ex, тут на форуме недавно о них вспоминали..
|
|
|
|
| постоянный участник
|
Пост N: 43
Зарегистрирован: 25.12.07
|
|
Отправлено: 10.01.08 17:57. Заголовок: Петр пишет: Судя по..
Петр пишет: цитата: | Судя по тому, что кнопка Open блокируется - проблемы с memory leak остаются? |
| Нет-нет, это скорее моя лень, а не какая-то проблема Просто "правильно" писать было длиннее. Объекты корректно повторное открытие игнорируют. Просто у меня на кнопке еще "руками" Мастер-Детэйл устанавливается (создается item с блоком кода), это нужно под условие "загонять", кнопку же задизэйблить быстрей :)) Так что, никаких проблем с "memory leak" нет. Эта форма - "вещь" тоже временная, поэтому я пока не "упираюсь". За рекомендации спасибо, буду вникать.
|
|
|
|
| модератор
|
Пост N: 682
Зарегистрирован: 25.05.05
|
|
Отправлено: 10.01.08 18:09. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | Есть ли типовые средства загрузки "сторонних" dll в Харборе? |
| Следующий код реализует обращение к системной библиотеке uxtheme.dll в коде библиотеки MiniGUI Ext: static HINSTANCE hUxTheme; long InitUxTheme( void ) { if( hUxTheme == NULL ) { hUxTheme = LoadLibraryEx( "uxtheme.dll", NULL, NULL ); } return( LONG ) hUxTheme; } void EndUxTheme( void ) { if( !hUxTheme == NULL ) { FreeLibrary( hUxTheme ); hUxTheme = NULL; } } HB_FUNC( ISTHEMEACTIVE ) { BOOL bRet = ( BOOL ) FALSE; if( hUxTheme == NULL ) { hUxTheme = LoadLibraryEx( "uxtheme.dll", NULL, NULL ); } if( hUxTheme ) { fnIsThemeActive pfn = ( fnIsThemeActive ) GetProcAddress( hUxTheme, "IsThemeActive" ); if( pfn ) { bRet = ( BOOL ) pfn(); } } hb_retl( bRet ); } HB_FUNC( ISAPPTHEMED ) { BOOL bRet = ( BOOL ) FALSE; if( hUxTheme == NULL ) { hUxTheme = LoadLibraryEx( "uxtheme.dll", NULL, NULL ); } if( hUxTheme ) { fnIsAppThemed pfn = ( fnIsAppThemed ) GetProcAddress( hUxTheme, "IsAppThemed" ); if( pfn ) { bRet = ( BOOL ) pfn(); } } hb_retl( bRet ); }
|
|
|
|
| постоянный участник
|
Пост N: 44
Зарегистрирован: 25.12.07
|
|
Отправлено: 10.01.08 18:46. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | Следующий код реализует обращение к системной |
| Спасибо. Тo есть, фактически принято загружать на "чистом" С. Ок.
|
|
|
|
| постоянный участник
|
Пост N: 358
Зарегистрирован: 09.10.06
|
|
Отправлено: 10.01.08 19:02. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | Тo есть, фактически принято загружать на "чистом" С. Ок. |
| И да, и нет В том же MiniGUI можно найти такие конструкции: DECLARE DLL_TYPE_LONG DIWriteJpg(DLL_TYPE_LPCSTR DestPath, DLL_TYPE_LONG quality, DLL_TYPE_LONG progressive) ; IN DIJPG.DLL ALIAS BMPTOJPG BmpToJpg( path, 100, 1 ) Такие (похожие) конструкции "любят" применять и пользователи FiveWin, What32, xHb. Вообще то не обязательно знать С, чтобы использовать [x]Harbour. Но Вам, чтобы не вникать в нюансы реализации, действительно лучше написать загрузку dll на C или Паскале
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 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 Думаю, там многие тоже заинтересуются Вашим продуктом |
| Заинтересуются то понятно. Но я не хочу привлекать буржуев к написанию и тестированию.
|
|
|
|
| постоянный участник
|
Пост N: 54
Зарегистрирован: 25.12.07
|
|
Отправлено: 15.01.08 12:56. Заголовок: Pasha пишет: Харбор..
Pasha пишет: цитата: | Харбор (оба) содержит терминал gtwvt/gtwvg, который включает в себя основные контролы windows в качестве надстройки над текстовым режимом. Если использовать его, то можно сделать демку и без минигуи, используя базовую поставку. Демо графических примитивов gtwvt xharbour\contrib\wvtgui\samples harbour\contrib\hbgtwvg\tests Мне кажется, этих средств будет вполне достаточно для рисования главного окошка демки |
| Что-то у себя в харборе нашел gtwvt.lib, но не нашел никаких примеров использования.
|
|
|
|
| постоянный участник
|
Пост N: 363
Зарегистрирован: 09.10.06
|
|
Отправлено: 15.01.08 13:37. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | Что-то не пойму, чем INLINE лучше? Код прямо в объявлении класса? Это быстрее работает? |
| Да - это работает быстрее К тому же, если помните, я на примере fnDBStruct() показал Вам как нужно писать быстрый код, поверьте на слово - разница в скорости довольно ощутимая. цитата: | Точное сравнение поставлю "==", но тоже хочется узнать, чем оно лучше? |
| "=" может использоваться и как оператор сравнения и как оператор присваивания, в зависимости от контекста применения. В связи с чем иногда делаются ненужные ошибки. цитата: | Здесь есть нюансы. Нюансы с многопоточностью. Например по аляске. Сейчас FRAX не полностью ее поддерживает. Но есть обходной путь, которым некоторые алясковцы пользуются. Накопировать несколько dll-ей. И создать несколько объектов "от" разных dll. |
| Сейчас не только FRAX ее не поддерживает, но и [х]Harbour - поэтому не надо усложнять себе жизнь. Но это на Ваше усмотрение.
|
|
|
|
| постоянный участник
|
Пост N: 55
Зарегистрирован: 25.12.07
|
|
Отправлено: 15.01.08 14:16. Заголовок: Петр пишет: Что-то ..
Петр пишет: цитата: | Что-то не пойму, чем INLINE лучше? Код прямо в объявлении класса? Это быстрее работает? Да - это работает быстрее |
| Ok. Буду знать и использовать. Петр пишет: цитата: | К тому же, если помните, я на примере fnDBStruct() показал Вам как нужно писать быстрый код, поверьте на слово - разница в скорости довольно ощутимая. |
| Ok. Там для меня несколько непонятный синтаксис, а fnDBStruct() не критичная по скорости функция, но тем не менее, хорошо, давайте, Вы будете присылать оптимизированные куски, а я их буду менять. Методы все короткие, не так много и оптимизировать. Если можно, fnDBStruct() продублируйте на "мыло". Петр пишет: цитата: | "=" может использоваться и как оператор сравнения и как оператор присваивания, в зависимости от контекста применения. В связи с чем иногда делаются ненужные ошибки. |
| Ok. Правило принимаю, при сравнениях буду писать ==. Петр пишет: цитата: | Сейчас не только FRAX ее не поддерживает, но и [х]Harbour - поэтому не надо усложнять себе жизнь. Но это на Ваше усмотрение. |
| Да? [х]Harbour не поддерживает многопоточность? Хорошо, тогда действительно можно CLASSVAR. Спирин Сергей.
|
|
|
|
| модератор
|
Пост N: 689
Зарегистрирован: 25.05.05
|
|
Отправлено: 15.01.08 14:57. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | [х]Harbour не поддерживает многопоточность? |
| Что касается Харбора, то поддержка многопоточности планируется после выпуска версии 1.0. Что касается хHarbour, то поддержка многопоточности в нем теоретически есть, но периодически пишут на его форуме, что практически она не работает
|
|
|
|
| постоянный участник
|
Пост N: 338
Зарегистрирован: 17.05.05
|
|
Отправлено: 15.01.08 15:08. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | Точное сравнение поставлю "==", но тоже хочется узнать, чем оно лучше? |
| Для числовых данных точное сравнение и просто сравнение - это одно и тоже. Различие имеет место, когда сравниваются текстовые данные. В этом случае алгоритм сравнения разный. Как было выше сказано, можно, якобы, перепутать сравнение и оператор присваивания. Но в Clipper (не знаю, как в [x]Harbour) оператор присваивания не может использоваться в выражениях. Там может использоваться только строчный оператор присваивания :=, то есть когда перед знаком равенства ставится двоеточие. Привычка заменять знак = на два знака == восходит к языку C/C++, где сравнение всегда указывается в виде ==. В этом языке действительно можно по ошибке заменить == на = и получить совершенно другой результат. Например while ( x = 1 ) { x = 2; } вместо while ( x == 1 ){ x = 2; } В первом случае цикл while будет выполняться бесконечно, так как в условии while x каждый раз будет получать значение, равное 1. В Clipper такую ошибку допустить нельзя, так как в конструкции DO WHILE ( x = 1 ) оператор = всегда рассматривается, как оператор сравнения. Тем не менее так как Clipper и [x]Harbour, фактически написаны на C, то все по привычке пишут для оператора сравнения два знака равенства ==. Хотя надо осознанно к этому подходить для строковых данных, как я заметил выше.
|
|
|
|
| постоянный участник
|
Пост N: 364
Зарегистрирован: 09.10.06
|
|
Отправлено: 15.01.08 16:33. Заголовок: Григорьев Владимир п..
Григорьев Владимир пишет: цитата: | Как было выше сказано, можно, якобы, перепутать сравнение и оператор присваивания. |
| Когда приблизительно месяца два назад на форуме разработчиков обсуждали так называемую "дорожную карту" Harbour 2.x , то помимо всего того, что может привести в ужас добропорядочного клиппериста, предлагалось добавить ключ компилятора, при использовании которого = ставится фактически вне закона: для присваивания использовать исключительно :=, для сравнения ==.
|
|
|
|
| постоянный участник
|
Пост N: 56
Зарегистрирован: 25.12.07
|
|
Отправлено: 15.01.08 16:44. Заголовок: Все-таки хотелось бы..
Все-таки хотелось бы определиться с демо, и с целесообразностью его типов. -Делать ли консольную версию? -Можно ли "извернуться" и сделать "полу-псевдо.."-windows приложение, которое будет компилироваться в обоих "голых" харбурах? Спирин Сергей.
|
|
|
|
| постоянный участник
|
Пост N: 57
Зарегистрирован: 25.12.07
|
|
Отправлено: 15.01.08 16:50. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | METHOD SetTitle(cTitle) class frReportManager RETURN Call_Func_C_I(::_SetTitle, cTitle) = 1 лучше обьявлять как METHOD SetTitle INLINE ( Call_Func_C_I(::_SetTitle, cTitle) == 1 ) |
| Что-то не пойму, а как сюда передать cTitle?
|
|
|
|
| модератор
|
Пост N: 690
Зарегистрирован: 25.05.05
|
|
Отправлено: 15.01.08 17:02. Заголовок: Петр пишет: лучше о..
Петр пишет: цитата: | лучше обьявлять как METHOD SetTitle INLINE ( Call_Func_C_I(::_SetTitle, cTitle) == 1 ) |
| Опечатка Имелось ввиду, конечно: METHOD SetTitle( cTitle) INLINE ( Call_Func_C_I(::_SetTitle, cTitle) == 1 )
|
|
|
|
| постоянный участник
|
Пост N: 365
Зарегистрирован: 09.10.06
|
|
Отправлено: 15.01.08 17:07. Заголовок: Сергей, это зависит ..
Сергей, это зависит от Вас и от маркетинговой политики выбранной опять же Вами. Консольную версию обязательно. А остальное, как мне видится, весьма желательно, т.е. пример для FiveWin, Visual xHarbour, HWGUI, MiniGUI, gtwvt&co. Затраты небольшие, а Вам только +. Поскольку кому и примера не нужно, а кто без примера и шагу ступить не может. К тому же не спрос рождает предложение, а предложение спрос.
|
|
|
|
| постоянный участник
|
Пост N: 366
Зарегистрирован: 09.10.06
|
|
Отправлено: 15.01.08 17:08. Заголовок: gfilatov пишет: Опе..
|
|
|
|
| модератор
|
Пост N: 691
Зарегистрирован: 25.05.05
|
|
Отправлено: 15.01.08 17:11. Заголовок: gfilatov пишет: Дел..
gfilatov пишет: цитата: | Делать ли консольную версию? |
| Да. Sergey Spirin пишет: цитата: | Можно ли "извернуться" и сделать "полу-псевдо.."-windows приложение |
| Возможно, поскольку библиотека GTWVT входит в стандартную поставку обоих Харборов Но рекомендую также рассмотреть вопрос включения исходников полноценного Win-приложения, основанного на MiniGUI и аналогичного по функциональности демке для Alaska XBase++, ссылку на которую Вы дали в начале топика
|
|
|
|
| постоянный участник
|
Пост N: 339
Зарегистрирован: 17.05.05
|
|
Отправлено: 15.01.08 17:24. Заголовок: Петр пишет: ключ ко..
Петр пишет: цитата: | ключ компилятора, при использовании которого = ставится фактически вне закона: для присваивания использовать исключительно :=, для сравнения ==. |
| Но на самом деле это некорректно! Так как вы тем самым перечеркиваете установку SET EXACT ON|OFF. Если вы всегда будете заменять = на ==, то эта установка будет бессмысленна, а многие программы, которые по незнанию, или случайно будут откомпиллированы с этим ключом перестанут работать! Другое дело, что я согласен с тем, что лучше простой оператор присваивания = заменять на строчный оператор присваивания :=, что я сам лично всегда так и делаю. Но вот со знаком сравнения = этого делать нельзя. То есть следует различать знаки сравнения = и ==. Они имеют разную семантику и не являются взаимозаменяемыми.
|
|
|
|
| постоянный участник
|
Пост N: 58
Зарегистрирован: 25.12.07
|
|
Отправлено: 15.01.08 17:27. Заголовок: Кстати, забавно, в х..
Кстати, забавно, в хелпе Аляски про INLINE- It is generally recommended to always separate the method declaration from its implementation. Мне тоже вот как-то психологически "перечит".... gfilatov пишет: цитата: | Делать ли консольную версию? Да. |
| gfilatov пишет: цитата: | Возможно, поскольку библиотека GTWVT входит в стандартную поставку обоих Харборов Но рекомендую также рассмотреть вопрос включения исходников полноценного Win-приложения, основанного на MiniGUI |
| Ок. Давайте определяться кто что делает. Мне демы писать сильно не хочется, я не клипперист, у меня просто получится хуже. Для дем же уже все есть, коды вызовов можно копировать из алясочного, должно в большинстве своем работать и т.д. Если неудобно на форуме, то давайте мылом.
|
|
|
|
| Администратор
|
Пост N: 707
Зарегистрирован: 23.05.05
|
|
Отправлено: 15.01.08 17:37. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | Что-то у себя в харборе нашел gtwvt.lib, но не нашел никаких примеров использования. |
| Все эти примеры используют функции/классы из библиотеки wvtgui для xHarbour и ее аналога в Harbour - hbgtwvg.lib. Это собственно надстройка над терминалом gtwvt. Эти библиотеки с примерами находятся в разделе contrib - его надо дополнительно выкачать цитата: | Можно ли "извернуться" и сделать "полу-псевдо.."-windows приложение, которое будет компилироваться в обоих "голых" харбурах? |
| С помощью этой библиотеки можно получить полноценное gui-окно - с меню, кнопками, тулбаром, btnbmp, radiobutton - чего душе угодно Для демо думаю будет вполне достаточно
|
|
|
|
| постоянный участник
|
Пост N: 367
Зарегистрирован: 09.10.06
|
|
Отправлено: 15.01.08 18:15. Заголовок: Григорьев Владимир п..
Григорьев Владимир пишет: цитата: | Но на самом деле это некорректно! Так как вы тем самым перечеркиваете установку SET EXACT ON|OFF. Если вы всегда будете заменять = на ==, то эта установка будет бессмысленна, а многие программы, которые по незнанию, или случайно будут откомпиллированы с этим ключом перестанут работать! Другое дело, что я согласен с тем, что лучше простой оператор присваивания = заменять на строчный оператор присваивания :=, что я сам лично всегда так и делаю. Но вот со знаком сравнения = этого делать нельзя. То есть следует различать знаки сравнения = и ==. Они имеют разную семантику и не являются взаимозаменяемыми. |
| Я думаю, что это обращение относится не ко мне Этот ключ не будет включен по умолчанию. И опасений, подобных высказанным Вами было также достаточно. К соглашению не пришли и решили вернуться к вопросу попозже. Если я найду в архиве высказанные предложения - я их опубликую здесь. Лично я использую только := для присваивания, == для сравнения числовых данных ( вот почему и написал на автомате Call_Func_C_I(::_SetTitle, cTitle) == 1 ), = и == для работы со строками.
|
|
|
|
| постоянный участник
|
Пост N: 368
Зарегистрирован: 09.10.06
|
|
Отправлено: 15.01.08 18:26. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | Кстати, забавно, в хелпе Аляски про INLINE- It is generally recommended to always separate the method declaration from its implementation. Мне тоже вот как-то психологически "перечит".... |
| Личные симпатии-антипатии не в счет Мне вот это тоже не нравится HB_FUNC( FRLOAD ) { hb_retnl((long)(HMODULE)LoadLibrary(hb_parc(1))); } HB_FUNC( GETFRPROCADDRESS ) { hb_retnl((long)(FARPROC)GetProcAddress((HMODULE)hb_parnl(1) , hb_parc(2))); } HB_FUNC( FRUNLOAD ) { FreeLibrary((HMODULE)hb_parnl(1)); } но ведь работает ! цитата: | Ок. Давайте определяться кто что делает. Для дем же уже все есть, коды вызовов можно копировать из алясочного, должно в большинстве своем работать и т.д. Если неудобно на форуме, то давайте мылом. |
| Это в смысле портировать алясочный пример ? И что должно быть неудобно на форуме ?
|
|
|
|
| постоянный участник
|
Пост N: 59
Зарегистрирован: 25.12.07
|
|
Отправлено: 15.01.08 18:38. Заголовок: Петр пишет: Мне вот..
Петр пишет: цитата: | Мне вот это тоже не нравится HB_FUNC( FRLOAD ) { hb_retnl((long)(HMODULE)LoadLibrary ................... |
| А что, кстати, не нравится? HMODULE/FARPROC появились по "требованию Microsoft" А к long приводить надо, чтоб в Харбур-переменной хранить... Петр пишет: цитата: | Это в смысле портировать алясочный пример ? И что должно быть неудобно на форуме ? |
| Форум больше для общение и обмена... Мне бы хотелось организовать более рабочий процесс
|
|
|
|
| постоянный участник
|
Пост N: 369
Зарегистрирован: 09.10.06
|
|
Отправлено: 15.01.08 18:43. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | А к long приводить надо, чтоб в Харбур-переменной хранить... |
| В Харбур-переменной с одинаковым успехом можна и указатели хранить..
|
|
|
|
| постоянный участник
|
Пост N: 60
Зарегистрирован: 25.12.07
|
|
Отправлено: 15.01.08 18:49. Заголовок: Петр пишет: В Харбу..
Петр пишет: цитата: | В Харбур-переменной с одинаковым успехом можна и указатели хранить.. |
| Да пробовал я hb_retptr в первую очередь, но уже не помню что, не срослось....В обратной "отдаче" что ли... не помню уже.
|
|
|
|
| постоянный участник
|
Пост N: 61
Зарегистрирован: 25.12.07
|
|
Отправлено: 16.01.08 18:25. Заголовок: Здравствуйте. А нет..
Здравствуйте. А нет ли в Харборе функции, которая вернет список всех открытых рабочих областей? То есть аналог алясочного WorkSpaseList()? Спирин Сергей.
|
|
|
|
| Администратор
|
Пост N: 715
Зарегистрирован: 23.05.05
|
|
Отправлено: 16.01.08 21:57. Заголовок: Поскольку структуры ..
Поскольку структуры вида static AREAP * s_WaList = NULL; обьявлены как static в модуле source\rdd\wacore.c, и прямого доступа к ним нет, приходится получать список РО таким вот грубым способом: Local aWA := {} For nArea := 1 TO 65534 // максимальное число РО if ! Empty( alias(nArea) ) AAdd( aWA, { alias(nArea), nArea } ) endif Next Чтобы сделать это более красиво, можно, конечно, добавить функцию в модуль wacore.c, но сейчас ее там нет
|
|
|
|
| |
Пост N: 43
Зарегистрирован: 27.04.06
|
|
Отправлено: 17.01.08 09:28. Заголовок: А как hb_rddIterate..
А как hb_rddIterateWorkAreas ?
|
|
|
|
| постоянный участник
|
Пост N: 62
Зарегистрирован: 25.12.07
|
|
Отправлено: 17.01.08 09:43. Заголовок: saulius пишет: А ка..
saulius пишет: цитата: | А как hb_rddIterateWorkAreas ? |
| Да, спасибо, придется с ней что-то придумать. "Придется" - это потому, что я стараюсь обходить совместное использование структур из-за возможной разницы в "record field alignment"....
|
|
|
|
| постоянный участник
|
Пост N: 63
Зарегистрирован: 25.12.07
|
|
Отправлено: 17.01.08 14:07. Заголовок: Здравствуйте. А ест..
Здравствуйте. А есть ли какая-либо картинка, котороая символизирует [x]Harbour. Нужна картинка на кнопку. Спирин Сергей.
|
|
|
|
| Администратор
|
Пост N: 718
Зарегистрирован: 23.05.05
|
|
Отправлено: 17.01.08 15:51. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | А есть ли какая-либо картинка, котороая символизирует [x]Harbour. Нужна картинка на кнопку. |
| Да можно взять "бренд" с официальной странички проекта: www.harbour-project.org
|
|
|
|
| постоянный участник
|
Пост N: 65
Зарегистрирован: 25.12.07
|
|
Отправлено: 17.01.08 19:08. Заголовок: Pasha пишет: Да мож..
Pasha пишет: цитата: | Да можно взять "бренд" с официальной странички проекта: |
| Да там только этот кораблик.... Ну, как мог ужал его Спирин Сергей.
|
|
|
|
| постоянный участник
|
Пост N: 66
Зарегистрирован: 25.12.07
|
|
Отправлено: 18.01.08 16:07. Заголовок: Здравствуйте. Я ..
Здравствуйте. Я "потихоньку" начинаю готовится к анонсу beta-trial. Не могли бы Вы "накидать" ссылок на различные форумы, конференции, да и вообще на любые ресурсы, где возможен такой анонс. Интересуют все ресурсы, от форума разработчиков до локальных или специализированных. Спасибо. Спирин Сергей.
|
|
|
|
| постоянный участник
|
Пост N: 370
Зарегистрирован: 09.10.06
|
|
Отправлено: 18.01.08 23:05. Заголовок: http://www.fivetechs..
|
|
|
|
| Администратор
|
Пост N: 721
Зарегистрирован: 23.05.05
|
|
Отправлено: 19.01.08 12:46. Заголовок: Я уже упоминал usene..
Я уже упоминал usenet группу comp.lang.xharbour Есть бразильский форум, довольно оживленный. Там пишут по португальски, но думаю, по английски поймут http://www.pctoledo.com.br/forum/
|
|
|
|
| постоянный участник
|
Пост N: 67
Зарегистрирован: 25.12.07
|
|
Отправлено: 19.01.08 21:42. Заголовок: Здравствуйте, спасиб..
Здравствуйте, спасибо за ссылки. Набросал страничку для анонса, посмотрите пожалуйста, думаю для анонса бэты этого достаточно... http://paritetsoft.ru/frh.htm
|
|
|
|
| постоянный участник
|
Пост N: 54
Зарегистрирован: 27.01.07
|
|
Отправлено: 21.01.08 09:18. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | думаю для анонса бэты этого достаточно |
| Нормально. zip-ы когда можно будет качнуть?
|
|
|
|
| постоянный участник
|
Пост N: 68
Зарегистрирован: 25.12.07
|
|
Отправлено: 21.01.08 09:27. Заголовок: Сегодня, в течении д..
Сегодня, в течении дня выложу варианты для МиниГуи (их два Std и Ext). Спасибо Григорию Филатову Консольный будет завтра-послезавтра.
|
|
|
|
| постоянный участник
|
Пост N: 55
Зарегистрирован: 27.01.07
|
|
Отправлено: 21.01.08 10:05. Заголовок: Ясно. Спасибо и удач..
Ясно. Спасибо и удачи! :)
|
|
|
|
| постоянный участник
|
Пост N: 69
Зарегистрирован: 25.12.07
|
|
Отправлено: 21.01.08 14:34. Заголовок: Здравствуйте. На h..
Здравствуйте. На http://paritetsoft.ru/frh.htm выложил сам FRH и два демо для MiniGui. После добавления консольного варианта демо сделаю широкий анонс.
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 21.01.08 18:08. Заголовок: ?????????????..
?????????????
|
|
|
|
| постоянный участник
|
Пост N: 70
Зарегистрирован: 25.12.07
|
|
Отправлено: 21.01.08 18:14. Заголовок: AAAAAAAAA пишет: ??..
AAAAAAAAA пишет: Что-то не получается?
|
|
|
|
| постоянный участник
|
Пост N: 371
Зарегистрирован: 09.10.06
|
|
Отправлено: 21.01.08 20:22. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | выложил сам FRH и два демо для MiniGui. |
| Error DBFCDX/1001 Open error: Biolife.dbf (DOS Error 3) Called from DBUSEAREA(0) Called from DOMEMPICT(539) Called from (b)MAIN(251) Called from _DOCONTROLEVENTPROCEDURE(4805) Called from EVENTS(1560) Called from _DOMESSAGELOOP(0) Called from _ACTIVATEWINDOW(4495) Called from MAIN(395)
|
|
|
|
| постоянный участник
|
Пост N: 71
Зарегистрирован: 25.12.07
|
|
Отправлено: 21.01.08 20:29. Заголовок: Петр пишет: Error D..
Петр пишет: цитата: | Error DBFCDX/1001 Open error: Biolife.dbf (DOS Error 3) Called from DBUSEAREA(0) |
| Какой вариант, и куда, что положили (директорно)? Можно ли проверить почему Biolife.dbf не открывается?
|
|
|
|
| постоянный участник
|
Пост N: 57
Зарегистрирован: 27.01.07
|
|
Отправлено: 21.01.08 21:04. Заголовок: Я так понял, что FRH..
Я так понял, что FRH и дема должны в одной папке лежать.
|
|
|
|
| постоянный участник
|
Пост N: 72
Зарегистрирован: 25.12.07
|
|
Отправлено: 21.01.08 22:37. Заголовок: PSP пишет: Я так по..
PSP пишет: цитата: | Я так понял, что FRH и дема должны в одной папке лежать. |
| Да, все правильно, а что есть есть проблемы?
|
|
|
|
| постоянный участник
|
Пост N: 73
Зарегистрирован: 25.12.07
|
|
Отправлено: 21.01.08 23:00. Заголовок: Петр пишет: Error D..
Петр пишет: цитата: | Error DBFCDX/1001 Open error: Biolife.dbf (DOS Error 3) Called from DBUSEAREA(0) |
| Интересно, у меня работе пару раз эта ошибка тоже "проскользнула", сейчас дома повторить не могу в принципе . Но в любом случае это чисто DBFCDX ошибка, то есть чистая Harbour-ошибка, к FRH отношения не имеет. Если у Вас четко повторяется, напишите, пожалуйста, последовательность действий.
|
|
|
|
| постоянный участник
|
Пост N: 372
Зарегистрирован: 09.10.06
|
|
Отправлено: 22.01.08 10:26. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | сейчас дома повторить не могу в принципе |
| Достаточно установить FastReport Action в Export Report и 2 раза воспользоваться кнопкой Memos and Pictures
|
|
|
|
| постоянный участник
|
Пост N: 408
Зарегистрирован: 12.09.06
|
|
Отправлено: 22.01.08 10:53. Заголовок: Лучше было бы положи..
Лучше было бы положить ЕХЕ-шник уже готовый, а то не собирается !!!! А так хочется глянуть быстрей как это работает. Лучше всего даже все варианты в ДЕМО запихнуть и название сделать: demo_minigui.exe demo_xH_gtwin.exe demo_H_gtwin.exe и т.д. И всем понятно будет !!!!
|
|
|
|
| модератор
|
Пост N: 692
Зарегистрирован: 25.05.05
|
|
Отправлено: 22.01.08 11:21. Заголовок: Andrey пишет: Лучше..
|
|
|
|
| |
Пост N: 24
Зарегистрирован: 19.12.06
|
|
Отправлено: 22.01.08 12:16. Заголовок: Супер ! Жду демки п..
|
|
|
|
| постоянный участник
|
Пост N: 74
Зарегистрирован: 25.12.07
|
|
Отправлено: 22.01.08 12:23. Заголовок: Петр пишет: Достато..
Петр пишет: цитата: | Достаточно установить FastReport Action в Export Report и 2 раза воспользоваться кнопкой Memos and Pictures |
| Ok. Спасибо. Исправлено. Оказалось, это еще с Аляски, мое непонимание команды SET DEFAULT TO "data\" Я почему-то наверное думал, что это "навсегда" определение , а оказалось нет. Диалог экспорта меняет текущую директорию и "привет"
|
|
|
|
| постоянный участник
|
Пост N: 75
Зарегистрирован: 25.12.07
|
|
Отправлено: 22.01.08 12:31. Заголовок: k_dima пишет: Будет..
k_dima пишет: цитата: | Будет ли оно работать c другими GUI типа Visual Xharbour ? |
| Да, будет. Заявлено же, что "compatible with any Harbour or xHarbour -based systems" k_dima пишет: цитата: | И шкурный вопрос - сколько будет стоить лицензия ? |
| FRAX (это для Аляски) сейчас стоит 299 Евро.
|
|
|
|
| постоянный участник
|
Пост N: 409
Зарегистрирован: 12.09.06
|
|
Отправлено: 22.01.08 13:32. Заголовок: k_dima пишет: Будет..
k_dima пишет: цитата: | Будет ли оно работать c другими GUI типа Visual Xharbour ? |
| Да будет, так как Visual xHarbour совместим с xHarbour'om. А демо я пока под хХарбором пишу.
|
|
|
|
| постоянный участник
|
Пост N: 6
Зарегистрирован: 13.09.07
|
|
Отправлено: 22.01.08 14:31. Заголовок: Sergey Spirin ..
Sergey Spirin А смысл платить 300 евро если за 80 баксов можно купить Fast Report Studio?
|
|
|
|
| постоянный участник
|
Пост N: 76
Зарегистрирован: 25.12.07
|
|
Отправлено: 22.01.08 14:48. Заголовок: leo пишет: А смысл ..
leo пишет: цитата: | А смысл платить 300 евро если за 80 баксов можно купить Fast Report Studio? |
| Купить то можно, только что дальше с этим делать? Далее, 80 баксов - это Personal. То есть для дома и семьи, это как Word себе купить Single для разработчика - это уже около 200 Евро. Ну, попробуйте, как Вам понравится работа через OLE и какие возможности оно в данном случае дает И потом, для буржуев точно будет не меньше, про EXUSSR еще подумаю..., хотя кажется, все кризисы давно прошли?
|
|
|
|
| постоянный участник
|
Пост N: 7
Зарегистрирован: 13.09.07
|
|
Отправлено: 22.01.08 14:56. Заголовок: Sergey Spirin п..
Sergey Spirin пишет: цитата: | Купить то можно, только что дальше с этим делать? |
| А дальше без проблем из Harbour вызывается на выполнение любой отчет. Sergey Spirin пишет: цитата: | И потом, для буржуев точно будет не меньше, про EXUSSR еще подумаю..., хотя кажется, все кризисы давно прошли? |
| Не знаю у кого эти кризисы прошли, у меня и у моих коллег еще не скоро будет возможность покупать за 300 евро нужные программы. Хотя я понимаю, что всякий труд должен быть оплачен и по большому счету для нормальной страны деньги эти не такие большие. Но когда мы станем такой страной?
|
|
|
|
| постоянный участник
|
Пост N: 77
Зарегистрирован: 25.12.07
|
|
Отправлено: 22.01.08 15:28. Заголовок: leo пишет: Не знаю ..
leo пишет: цитата: | Не знаю у кого эти кризисы прошли, |
| Это какой любой? C базами, например, как работать будете? leo пишет: цитата: | Не знаю у кого эти кризисы прошли, у меня и .. |
| Честно говоря, я не очень Вас понимаю. Вы независимый разработчик софта? Продаете свой софт? По-моему, остается подсчитать рентабельность приобретения FRH. Если нерентабелен, ну и бог с ним, в конце концов Насчет страны, а Вы откуда? И потом, я же говорю, что для EXUSSR еще подумаю.
|
|
|
|
| |
Пост N: 25
Зарегистрирован: 19.12.06
|
|
Отправлено: 22.01.08 17:16. Заголовок: 300 евро - не вопрос..
300 евро - не вопрос, если еще в эту сумму входит поддержка хотя-бы год - короче ждем версию для Xharbour, как только появится, попробую ее под Visual Xharbour погонять.
|
|
|
|
| постоянный участник
|
Пост N: 78
Зарегистрирован: 25.12.07
|
|
Отправлено: 22.01.08 17:43. Заголовок: k_dima пишет: если ..
k_dima пишет: цитата: | если еще в эту сумму входит поддержка хотя-бы год |
| Насчет поддержки. Если говорить про FRAX, то текущая сборка пересобирается 1-2 в неделю и естественно доступна пользователям. То есть, все баги как мои, так и FastReport Inc правяться оперативно. А в консультациях тоже ния ни Фаст никому не отказываем С FRH я думаю будет аналогично.
|
|
|
|
| постоянный участник
|
Пост N: 410
Зарегистрирован: 12.09.06
|
|
Отправлено: 22.01.08 22:10. Заголовок: Народ ! Помогите раз..
Народ ! Помогите разобраться в написании терминала для GTWIN и GTWVT под различные кодировки: 1251 и 866 Все строковые константы сидят в CH lang_en.ch lang_ru.dos.ch lang_ru.win.ch Можно ли в одном модуле PRG сделать все описание ? Если нет то дайте как можно ......
|
|
|
|
| постоянный участник
|
Пост N: 79
Зарегистрирован: 25.12.07
|
|
Отправлено: 22.01.08 22:40. Заголовок: Andrey пишет: Народ..
Andrey пишет: цитата: | Народ ! Помогите разобраться в написании терминала для GTWIN и GTWVT под различные кодировки: 1251 и 866 |
| Андрей, да пускай будет только английский. Какого то особенного смысла в русском языке в деме нет. Не упирайтесь! :)
|
|
|
|
| постоянный участник
|
Пост N: 411
Зарегистрирован: 12.09.06
|
|
Отправлено: 22.01.08 23:03. Заголовок: Ну для Демо можно и ..
Ну для Демо можно и только английский, но хочется всетаки универсальности, тем более что препроцессор позволяет !
|
|
|
|
| постоянный участник
|
Пост N: 80
Зарегистрирован: 25.12.07
|
|
Отправлено: 23.01.08 12:04. Заголовок: Здравствуйте. Давно..
Здравствуйте. Давно хочу спросить, какой лучший способ сгенерить (возбудить) ошибку? То есть, вот даже "живой" пример: ::frSystHandle := FrLoad(cOptionalPath) IF ::frSystHandle <> 0 ................... ELSE // ?? How to raise exception ? ENDIF
|
|
|
|
| модератор
|
Пост N: 693
Зарегистрирован: 25.05.05
|
|
Отправлено: 23.01.08 13:34. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | какой лучший способ обработать ошибку? |
| Для этого предназначена следующая структура: BEGIN SEQUENCE ::frSystHandle := FrLoad(cOptionalPath) IF EMPTY(::frSystHandle) MsgStop('Error message.') BREAK ENDIF ... END SEQUENCE
|
|
|
|
| постоянный участник
|
Пост N: 81
Зарегистрирован: 25.12.07
|
|
Отправлено: 23.01.08 13:56. Заголовок: gfilatov пишет: ка..
gfilatov пишет: цитата: | какой лучший способ обработать ошибку? Для этого предназначена следующая структура: |
| Нет-нет! Не обработать ошибку! А именно "сделать" ошибку Чтобы объект ошибки с моими словами "пошел" в текущий ErrorBlock. Насколько я понимаю, я должен создать объект ошибки и вызвать Eval(ErrorBlock, oError) Просто, может есть как-то коротко?
|
|
|
|
| модератор
|
Пост N: 694
Зарегистрирован: 25.05.05
|
|
Отправлено: 23.01.08 14:43. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | какой лучший способ сгенерировать ошибку? |
| ... oerr := ErrorNew() oerr:severity := ES_ERROR oerr:genCode := EG_OPEN oerr:subSystem := "FRH" oerr:osCode := nFileError oerr:filename := cFrFile Eval(ErrorBlock(), oerr) ...
|
|
|
|
| постоянный участник
|
Пост N: 82
Зарегистрирован: 25.12.07
|
|
Отправлено: 23.01.08 14:45. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | Просто, может есть как-то коротко? |
| Подсмотрел rdd-исходники, похоже сокращенного пути нет Сделал так ELSE oError := ErrorNew() oError:GenCode := EG_OPEN oError:Severity := ES_ERROR oError:SubCode := 2012 oError:Description := "Can not load FRH library " + "'" + cOptionalPath + "'" oError:FileName := cOptionalPath oError:CanDefault := .F. Eval(ErrorBlock(), oError) ENDIF
|
|
|
|
| постоянный участник
|
Пост N: 83
Зарегистрирован: 25.12.07
|
|
Отправлено: 23.01.08 14:47. Заголовок: gfilatov пишет: :su..
gfilatov пишет: Точно
|
|
|
|
| модератор
|
Пост N: 695
Зарегистрирован: 25.05.05
|
|
Отправлено: 23.01.08 15:06. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | oError:Description := "Can not load FRH library " + "'" + cOptionalPath + "'" |
| Описание ошибки можно сократить до oError:Description := "Can not load FRH library" поскольку имя файла передается в oError:FileName := cOptionalPath
|
|
|
|
| |
Пост N: 44
Зарегистрирован: 27.04.06
|
|
Отправлено: 23.01.08 15:21. Заголовок: ELSE Throw( ErrorN..
ELSE Throw( ErrorNew( "FRH", EG_OPEN, 2012, ProcName(), "Can not load FRH library", ; { cOptionalPath, cOptionalPath } ) ) ENDIF
|
|
|
|
| модератор
|
Пост N: 696
Зарегистрирован: 25.05.05
|
|
Отправлено: 23.01.08 15:37. Заголовок: saulius пишет: Thro..
saulius пишет: Эта функция есть только в xHarbour #include "hbapi.h" #include "hbapiitm.h" #include "hbapierr.h" HB_FUNC( THROW ) { PHB_ITEM pError = hb_param( 1, HB_IT_ANY ), pResult; if( HB_IS_OBJECT( pError ) ) { pError = hb_itemNew( pError ); pResult = hb_errLaunchSubst( pError ); hb_itemRelease( pError ); if( pResult ) { hb_itemRelease( hb_itemReturnForward( pResult ) ); } } else { hb_errRT_BASE( EG_ARG, 9101, NULL, "THROW", 1, hb_paramError( 1 ) ); } }
|
|
|
|
| постоянный участник
|
Пост N: 85
Зарегистрирован: 25.12.07
|
|
Отправлено: 24.01.08 14:19. Заголовок: Здравствуйте. Расши..
Здравствуйте. Расширил и обновил http://www.paritetsoft.ru/frh.htm Сейчас начну наполнять содержимое ссылок на файлы. Посмотрите пожалуйста, может быть, какие-то замечания, что-то в словах добавить, и т.д. Возможно, что сделаю широкий анонс выхода бэты сегодня.
|
|
|
|
| постоянный участник
|
Пост N: 86
Зарегистрирован: 25.12.07
|
|
Отправлено: 24.01.08 15:34. Заголовок: Все разложил. Сажусь..
Все разложил. Сажусь писать тект анонса и где-то через полчаса-час начну "долбить по миру"
|
|
|
|
| постоянный участник
|
Пост N: 88
Зарегистрирован: 13.10.05
|
|
Отправлено: 28.01.08 11:07. Заголовок: Сборка консоли. Рели..
Сборка консоли. Релиз 9971 Сборка demo_gtwin.bc все нормально. Что-то не могу повторить сборку demo_gtwvt.bc , выдает ошибку: Hbmake need of the xHarbour bin in the path.
|
|
|
|
| постоянный участник
|
Пост N: 92
Зарегистрирован: 25.12.07
|
|
Отправлено: 28.01.08 19:45. Заголовок: Vlad04 пишет: Что-т..
Vlad04 пишет: цитата: | Что-то не могу повторить сборку demo_gtwvt.bc , |
| Этот вариант делал Андрей, поэтому "подождем" его.
|
|
|
|
| постоянный участник
|
Пост N: 430
Зарегистрирован: 12.09.06
|
|
Отправлено: 28.01.08 23:37. Заголовок: Vlad04 пишет: Hbmak..
Vlad04 пишет: цитата: | Hbmake need of the xHarbour bin in the path. |
| Я вообщето очень слабо разбираюсь в английском, но помоему он "ругается" про путь к xHarbour'y. Скорее всего не прописано PATH=Z:\BCC55\BIN;Z:\xHARBOUR\BIN; и еще HB_DIR = Z:\xHARBOUR соответственно диск Z - переправте на свой. Хотя если предыдущий собрался через hbmake, то и это должен собраться. Может ошибка другая, типа Fatal: Unable to open file 'WVTGUI.LIB' ???
|
|
|
|
| постоянный участник
|
Пост N: 89
Зарегистрирован: 13.10.05
|
|
Отправлено: 29.01.08 06:57. Заголовок: Вообщем повторить по..
Вообщем повторить почти удалось.Прописал в переменных окружения пути, сборка пошла. Но для сборки demo_gtwin.bc переменные окружения указывал только в батнике в батнике (т.к. работаю сразу с версией 9971 и 1.0) и все получалось. Небольшие замечания: 1) В файле demo_gtwvt.prg указан #include "lang_ru.dos.ch", а фактичесуи есть lang_en.ch. 2) Внешний вид приложения - отсутствуют рамки на комбобоксе выбора языка приложения. Возможно это связано с установленным фонтом.
|
|
|
|
| постоянный участник
|
Пост N: 432
Зарегистрирован: 12.09.06
|
|
Отправлено: 29.01.08 10:24. Заголовок: Vlad04 пишет: указа..
Vlad04 пишет: цитата: | указан #include "lang_ru.dos.ch", а фактичесуи есть lang_en.ch. |
| Это к Сергею Спирину, я ему писал чтоб русскую кодировку выложил. Vlad04 пишет: цитата: | отсутствуют рамки на комбобоксе выбора языка приложения. |
| Были рамки, а в какой системе запускается задача ?
|
|
|
|
| постоянный участник
|
Пост N: 90
Зарегистрирован: 13.10.05
|
|
Отправлено: 29.01.08 11:00. Заголовок: Пересобрал на нарб ..
Пересобрал на нарб 1.0. Все то же самое, имею ввиду рамки. Операционная ХР2, запускал из под фара и проводником
|
|
|
|
| постоянный участник
|
Пост N: 433
Зарегистрирован: 12.09.06
|
|
Отправлено: 29.01.08 11:35. Заголовок: Программа должна быт..
Программа должна быть такой: Если нет, то пишем ....
|
|
|
|
| постоянный участник
|
Пост N: 91
Зарегистрирован: 13.10.05
|
|
Отправлено: 29.01.08 13:57. Заголовок: Нет рамок, как я соо..
Нет рамок, как я сообщал для demo_gtwvt.exe , если я его сам собираю.
|
|
|
|
| постоянный участник
|
Пост N: 434
Зарегистрирован: 12.09.06
|
|
Отправлено: 29.01.08 16:55. Заголовок: Я кажись догадываюсь..
Я кажись догадываюсь в чем дело ! Хотелось бы подтверждения .... Какой исходник вы собираете ? Есть ли в исходнике 2 строки: Wvt_SetCodePage(255) // #define OEM_CHARSET 255 - from wingdi.h Wvt_SetFont( 'Terminal', 18, 10, 0 ) Я собираю xHarbour build 1.0.0 Intl. И у меня рамки есть. Выложите окно, которое у вас получается.
|
|
|
|
| постоянный участник
|
Пост N: 466
Зарегистрирован: 12.09.06
|
|
Отправлено: 04.02.08 23:10. Заголовок: Пытался опять собрат..
Пытался опять собрать ДЕМО терминальное для GTWIN под Harbour Beta build 0.99-3 Intl. Собралось. Но если подключена мышка то выдает такую ошибку ┌───────────────────────────────────────────┐ │ Error BASE/1081 Неверный аргумент: + │ [ Quit ] └───────────────────────────────────────────┘ И вываливается. Что-то в GET-системы с мышкой не лады в Harbour'e. Хочется все-таки запустить Harbour - DEMO, кто поможет ?
|
|
|
|
| постоянный участник
|
Пост N: 105
Зарегистрирован: 25.12.07
|
|
Отправлено: 05.02.08 12:22. Заголовок: Andrey пишет: Хочет..
Andrey пишет: цитата: | Хочется все-таки запустить Harbour - DEMO, кто поможет ? |
| Да ладно, это в общем-то не столь актуально. Как с штрих-кодами дела? Разбираетесь? Спирин Сергей.
|
|
|
|
| постоянный участник
|
Пост N: 467
Зарегистрирован: 12.09.06
|
|
Отправлено: 06.02.08 00:19. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | Да ладно, это в общем-то не столь актуально. |
| Нет, актуально ! Я на нем дальше хочу делать задачи. Тем более его наши гуру используют.
|
|
|
Ответов - 201
, стр:
1
2
3
4
5
6
7
8
9
10
11
All
[только новые]
|
|