On-line: Andrey, гостей 2. Всего: 3 [подробнее..]
АвторСообщение
Администратор




Пост N: 2020
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 08.08.11 10:55. Заголовок: hbmk2


Как задать сборку библиотеки, если сырцы находятся в разных каталогах ?
Причем в файле hbp не хотелось бы указывать абсолютный путь

Хотелось бы задать переменные окружения:

set HB_CT=\harbour\contrib\hbct\
set HB_WIN=\harbour\contrib\hbwin\

и затем их использовать в *.hbp, что-то вроде:

$(HB_CT)addascii.c
...
$(HB_WIN)axcore.c


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 36 , стр: 1 2 All [только новые]





Пост N: 260
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 09.08.11 12:10. Заголовок: Как вариант в каждом..


Как вариант в каждом каталоге создать hbm с нужными файлами, а в главном hbp указать эти hbm.
Только что проверил на letodb
========================
rddleto.hbp
========================
#
# $Id: rddleto.hbp,v 1.3.2.3 2011/08/01 16:10:56 ptsarenko Exp $
#

# static lib
-hblib
# shared lib, dll or so
#-hbdynvm
#-shared

-nohbc
-inc
-olib/rddleto
-iinclude
-n -w -q0 -es2

source/client/leto1.c
source/client/letomgmn.c
source/client/rddsys.prg

source/common/common.hbm
end ===================================

common.hbm (source/common/)
======================
blowfish.c
common_c.c
hbip.c
net.c

end===============================

Потом hbmk2 rddleto.hbp letodb.hbp и все нормально.

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




Пост N: 2023
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 09.08.11 15:50. Заголовок: Столкнулся с какой-т..


Столкнулся с какой-то совершенно бредовой ситуацией
Использую релиз Harbour 3.0
С помощью hbmk2 собираю свою либу, в которой более сотни модулей.
В этих модулях (prg) часто встречаются конструкции вида:

#ifdef __HARBOUR__
...
#endif

#ifndef __HARBOUR__
...
#else
...
#endif

Заметил, что многие модули были скомпилированы, как будто __HARBOUR__ не определен.
Поставил флажок -p, посмотрел ppo - действительно так.
Причем первые несколько модулей собираются с __HARBOUR__ а начиная где-то с 9-го - без.
Если я правлю 9-й модуль, и запускаю hbmk2, то перекомпилируется только он один, и с
уже определенным __HARBOUR__
Даже не представляю, как сделать пример :(

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 261
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 09.08.11 16:11. Заголовок: Я с такой ситуацией ..


Я с такой ситуацией не сталкивался, потому лучше сразу в Harbour dev list думаю будет быстрее.

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




Пост N: 2024
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 10.08.11 08:28. Заголовок: Нашел, где собака по..


Нашел, где собака порылась
Если в каком-то модуле присутствует строка:

#include "hbver.h"

то в модулях, которые компилируются после него, __HARBOUR__ не определен.

По-видимому, этот баг возникает, если компилятору harbour.exe задать компиляцию сразу нескольких модулей
Если их компилировать по отдельности, то все в порядке

Написал в devlist


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


Пост N: 533
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 10.08.11 10:37. Заголовок: У меня, кстати, тоже..


У меня, кстати, тоже уже бразильцы проявились с сообщением, что не могут собрать простой пример с frh.

Попробовал, и смог собрать только с harbour-30-bcc.lib, без нее идет ошибка про WsAIoctl() (?). Ниже мой ответ бразильцу с текстом bat-ника.

--
Hello, Julian,

> I have problem when compiling fastreport demo with harbour 3:
> Hbmk2 smpldemo fastreph

I downloaded Harbour3 and I can compile smpldemo. My bat-file
bellow. Firstly rename CurDrive() to hb_CurDrive() in smpldemo.

I compiled smpldemo with harbour-30-bcc.lib, without it some
problems with WsAIoctl() but it seems bug in Harbour3, of course not
in FRH. And it seems it's one of reason why Hbmk2 does not work
correctly.

----
@ECHO ON

@set HB_BIN_INSTALL=D:\hb30\bin
@set HB_LIB_INSTALL=D:\hb30\lib\win\bcc
@set HB_INC_INSTALL=D:\hb30\include

del FastDemo.c
del FastRepH.c

%HB_BIN_INSTALL%\harbour SmplDemo.prg -n -i%HB_INC_INSTALL%
%HB_BIN_INSTALL%\harbour FastRepH.prg -n -i%HB_INC_INSTALL%

bcc32 -O2 -d -X -I%HB_INC_INSTALL% -L%HB_LIB_INSTALL% SmplDemo.c FastRepH.c harbour-30-bcc.lib hbvm.lib hbrtl.lib
hbrdd.lib hbmacro.lib hbpp.lib rddntx.lib rddcdx.lib rddfpt.lib hbcommon.lib gtwin.lib hblang.lib hbcpage.lib hbct.lib
hbpcre.lib hbsix.lib hbzlib.lib hbextern.lib hbhsx.lib rddnsx.lib

---
Spirin Sergey.
"Paritet Soft" Company.
FRH sales: http://www.paritetsoft.ru/frh.htm
FRAX sales: http://www.paritetsoft.ru/frax.htm




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




Пост N: 2025
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 10.08.11 10:51. Заголовок: Вроде бы ничего особ..


Вроде бы ничего особенного в этой функции нет
А что за ошибка ? Unresolved external ? Либа соответствующая указана ?

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


Пост N: 566
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 10.08.11 11:38. Заголовок: Имхо, в BCC в либе w..


Имхо, в BCC в либе ws2_32.lib имеется эта функция. Видимо, Harbour 3.0 сам ее подтягивает.

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


Пост N: 534
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 10.08.11 11:44. Заголовок: Pasha пишет: А что ..


Pasha пишет:

 цитата:
А что за ошибка ? Unresolved external ?



Да:

Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: Unresolved external 'WSAIoctl' referenced from D:\HB30\LIB\WIN\BCC\HBRTL.LIB|hbsocket

Pasha пишет:

 цитата:
Либа соответствующая указана ?



Какая? Вроде обыскался, на вскидку не смог найти

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




Пост N: 2026
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 10.08.11 11:45. Заголовок: ws2_32.lib..


ws2_32.lib

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




Пост N: 2027
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 10.08.11 11:53. Заголовок: Сделал dll. Хочу сде..


Сделал dll. Хочу сделать соответствующую impoty library
Читаю help для hbmk2:

-hbimplib create import library

Задаю для hbmk2 соответствующую опцию

impoty library не создается.

Делаю ручками
Для bcc она делается с помощью implib, а как для mingw ?

Выдаю команду

if exist hbcontrib.dll dlltool -D hbcontrib.dll -l hbcontrib.lib

Либа создается нулевой длины и с лаконичным сообщением:

dlltool: CreateProcess

Как победить ? Хотелось бы прежде всего пнуть hbmk2

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


Пост N: 535
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 10.08.11 11:56. Заголовок: PSP пишет: Имхо, в ..


PSP пишет:

 цитата:
Имхо, в BCC в либе ws2_32.lib имеется эта функция.



Вау! Добавил ws2_32.lib и действительно скомпилилось Да, про борландовские либы я и не подумал, искал в харбурных...

Интересно, что же в моем примитивном примере такого, что цепляется аж сокетное WinAPI?

http://www.paritetsoft.ru/downloads/frh_demo_simple_console.zip




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


Пост N: 536
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 11.08.11 00:44. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Интересно, что же в моем примитивном примере такого, что цепляется аж сокетное WinAPI?



И размер exe вырос с 1.5 до 2.5 мегабайт.... На совсем почти голом приложении... Зачем все пихать в rtl?

Как-то все это настораживает... В особенности, уровень профессионализма исполнителей...

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




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


Sergey Spirin пишет:

 цитата:
Интересно, что же в моем примитивном примере такого, что цепляется аж сокетное WinAPI?



Все файловые функции харбора допускают работу с файлами в памяти (префикс "mem:") и по сети через netio сервер (префикс "net:"). Эти же средства поддерживаются всеми стандартными rdd*. Для доступа через net: и необходимо сокетное api.
В стандартной сборке эти средства включены. При желании можно собрать харбор и без них.
Все это появилось в харборе уже 2 года как.

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




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


Sergey Spirin пишет:

 цитата:
И размер exe вырос с 1.5 до 2.5 мегабайт.... На совсем почти голом приложении... Зачем все пихать в rtl?

Как-то все это настораживает... В особенности, уровень профессионализма исполнителей...



? Hello, world

собранный Harbour 2.0 (2009 год), имеет размер 620К, а собранный Harbour 3.0 - на 15К больше. Так что с профессионализмом разработчиков все в порядке. Более того. Я смотрю, у нынешней версии Harbour по сравнению с xHarbour скорость выполнения операций rdd выше примерно на 30%. Так что не беспокойтесь, профессионализм высокий.

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


Пост N: 537
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 11.08.11 22:04. Заголовок: Pasha пишет: ? Hell..


Pasha пишет:

 цитата:
? Hello, world



Угу, Паш, на меньшем ты проверить не мог? На самом примитивном демо, ссылку на которое ты можешь увидеть выше:

Harbour 0.97 - 1.1. MB
xHarbour 1.2.1 - 1.5 MB
Harbour 3 - 2,5 MB

Прости, но профессиональным это я назвать не могу.... BCC тот же ... Сокет открываем? Паш, сорри, ты умничка, но здесь сильно не прав.




Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 263
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 11.08.11 22:24. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Как-то все это настораживает... В особенности, уровень профессионализма исполнителей...


Предлагаю сразу в Harbour dev list оспаривать уровень а то попахивает холиваром. Читаем еще раз
Pasha пишет:

 цитата:
В стандартной сборке эти средства включены. При желании можно собрать харбор и без них.



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




Пост N: 1843
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.08.11 23:12. Заголовок: Вообще то мне тоже н..


Вообще то мне тоже не нравиться сильное увеличение размера ЕХЕ-ников.
Я собирал свою демку для Fast'a:
FastDemo_gtwin_ru.exe - 417280 24.01.08
FastDemo_gtwin.exe - 2501 К 11.08.11

AlexMyr пишет:

 цитата:
Предлагаю сразу в Harbour dev list оспаривать уровень


Присоединяюсь.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 264
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 12.08.11 00:25. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Pasha пишет:

цитата:
? Hello, world



Угу, Паш, на меньшем ты проверить не мог? На самом примитивном демо, ссылку на которое ты можешь увидеть выше:

Harbour 0.97 - 1.1. MB
xHarbour 1.2.1 - 1.5 MB
Harbour 3 - 2,5 MB

Прости, но профессиональным это я назвать не могу.... BCC тот же ... Сокет открываем? Паш, сорри, ты умничка, но здесь сильно не прав.



Порылся в Harbour mailing list (Developers List) и нашел сообщение Przemek от 29 июля, тема Harbour evolution and WebServices, даю цитату:

Please read more carefully my messages. I know that my English is
fatal but if I aks you to strip final binaries then please do that.
Above result is size of standard unstripped harbour build.
Here are results for 32bit MinGW build (GCC4.6):

2011-05-07 13:33 147 hello.prg
2011-07-28 23:37 1˙136˙693 hello-32-std.exe
2011-07-29 00:28 1˙126˙171 hello-32-std-gc0.exe
2011-07-29 00:50 863˙284 hello-32-std-gc0-Os.exe
2011-07-28 23:37 863˙744 hello-32-strip.exe
2011-07-29 00:28 852˙992 hello-32-strip-gc0.exe
2011-07-29 00:51 585˙728 hello-32-strip-gc0-Os.exe

So your results suggests that you used standard Harbour build and you
created unstripped binaries and we are again at the beginning of this
discussion.
So please start your tests from -strip hbmk2 command and try:
hbmk2 hello.prg -strip
and check the size of hellow.exe. As you can see above it should be
close to 863˙744 bytes (hello-32-strip.exe) - some small diffeences
can appear du to different MinGW/GCC distributions.
Then you can try to rebuild Harbour with switches I was talking about.
In hello.prg -gc0 does not give significant size reduction because only
small part of HBRTL is linked with this code.

> I then built the xHarbout\tests\hello.prg (exactly same as
> above)). Size: 800,768 bytes

Not exactly if you have such results.
I've just downloaded current xHarbour and created new xHarbour MinGW
binaries. I had to set:
SET C_USR=-O3
because in xHarbour GNU make build system it's not enabled by default.
Here are results:
2011-07-29 01:15 1˙251˙503 hello-xhb-std.exe
2011-07-29 01:15 1˙026˙048 hello-xhb-strip.exe

I'm very interested how you are creating your xHarbour binaries and which
MinGW version you are using because still xHarbour binaries are bigger
when the same C compiler with the same switches is used and nothing
has changed here in last 8 years.

Я понимаю, что нет времени изучать все и вся, да никто и не заставляет этого делать, но если решитесь пообщаться в harbour dev list, то будет интересно понаблюдать и почитать.

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


Пост N: 539
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 12.08.11 11:38. Заголовок: AlexMyr пишет: Пред..


AlexMyr пишет:

 цитата:
Предлагаю сразу в Harbour dev list оспаривать уровень а то попахивает холиваром.



Для харборов я человек сторонний, поэтому каким-то тщательным анализом заниматься, пересобирать харборы, конечно, не буду. То, что я сказал, это всего лишь эмоциональная оценка ситуации, основывающаяся на опыте и здравом смысле. За мегабайтом native-кода должен либо стоять сверхсерьёзный функционал, либо это бессмысленное цепляние библиотек, то есть проблемы с архитектурой.

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 235
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 12.08.11 12:28. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
пересобирать харборы, конечно, не буду


А я пересобрал Харбор, добавив в скрипт сборки только одну строку:
set HB_USER_PRGFLAGS=-gc0

При этом размер run-time RTL библиотеки для BCC уменьшился с 1.9 MБ до 1.1 МБ

Соответственно уменьшился и размер экзешников...

Для справки: этот Харбор будет доступен в следующей сборке библиотеки минигуи

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




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


Sergey Spirin пишет:

 цитата:
Угу, Паш, на меньшем ты проверить не мог? На самом примитивном демо, ссылку на которое ты можешь увидеть выше:

Harbour 0.97 - 1.1. MB
xHarbour 1.2.1 - 1.5 MB
Harbour 3 - 2,5 MB

Прости, но профессиональным это я назвать не могу.... BCC тот же ... Сокет открываем? Паш, сорри, ты умничка, но здесь сильно не прав.



Это тот случай, когда собственная криворукость служит поводом пошуметь в адрес разработчиков :)
Сергей, зачем ты включил в демку

#include "hbextern.ch"

?

Ведь там перечислены вообще все externals ядра харбора. Вот все что можно и линкуется в exe.
Убери эту строку, и брюки размер замечательным образом превратятся в элегантные шорты 800k
CurDrive лучше заменить для harbour на hb_curdrive, чтобы не цепять либу hbxpp, которая не входит в ядро:

#ifndef __XHARBOUR__
#xtranslate CurDrive() => hb_CurDrive()
#endif

Вместо батника, или лучше в дополнение к нему, лучше дать скрипт SmplDemo.hbp:

-inc

-o${hb_name}

-w3 -es0

-prgflag=-l

smpldemo.prg
fastreph.prg

Поскольку утилита, упомянутая в сабже, является штатным средством сборки для Harbour. С ее помощью пример можно будет собрать любым C компилятором на win-платформе, а не только bcc
По поводу bcc: у Виктора уже чесались руки убрать его поддержку совсем, так как это морально устаревший компилятор. Пока его оставили, но, думаю, ненадолго.
И еще: сравнивать размер программ для xHarbour и Harbour в плане: для xHarbour было так, а для Harbour стало так, некорректно: это разные продукты, у них различная архитектура, разные команды разработчиков. Правда, команды разработчиков xHarbour уже нет.


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




Пост N: 2031
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 12.08.11 12:55. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
А я пересобрал Харбор, добавив в скрипт сборки только одну строку:
set HB_USER_PRGFLAGS=-gc0

При этом размер run-time RTL библиотеки для BCC уменьшился с 1.9 MБ до 1.1 МБ

Соответственно уменьшился и размер экзешников...

Для справки: этот Харбор будет доступен в следующей сборке библиотеки минигуи



Думаю, это делать не стоит. Размер библиотеки уменьшится, но и prg-код будет выполняться немного медленнее. А размер и его увеличение в конце концов не так критично.

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




Пост N: 1846
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.08.11 13:20. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
этот Харбор будет доступен в следующей сборке библиотеки минигуи


Ждем с нетерпением !!!

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 236
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 12.08.11 13:49. Заголовок: Pasha пишет: prg-ко..


Pasha пишет:

 цитата:
prg-код будет выполняться немного медленнее


Для оценки этого замедления использовал тест Пржемека speedtst.prg, собранный с ключами -gc0 и -gc3:
итоговое время выполнения всех 56-ти тестов (по миллиону повторений каждый) увеличилось на приблизительно 3-4 секунды.
Думаю, что такое замедление абсолютно некритично

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


Пост N: 540
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 12.08.11 17:45. Заголовок: Pasha пишет: Это то..


Pasha пишет:

 цитата:
Это тот случай, когда собственная криворукость служит поводом пошуметь в адрес разработчиков :)
Сергей, зачем ты включил в демку

#include "hbextern.ch"

?



Ну, прям уж "расшумелся". Ежели бы я расшумелся, то наехал бы не по-детски А тут просто ворчу по-стариковски.

Предположить, что я "просто так" добавил hbextern.ch было бы чересчур... Вывод один, что на чём-то без этого не компилилось, вот только на чём это было, сейчас, конечно, за древностью лет не восстановить... Гм.. Но если я сейчас это уберу, то отвалится у того, у кого это осталось... Ладно, пусть пока остаётся как есть. За то, что посмотрел и прояснил, спасибо.

Насчет С-компилятора, мне это, собственно, всё равно, bcc был просто под руками, на нем и проверил.

Насчет Harbour<->xHarbour, мне, в общем-то тоже все равно. Но чисто по своей статистике могу сказать, что пока какого-то большого перелома в пользу Harbour ещё нет. Среди моих покупателей, использующие Harbour буквально единицы, вся масса реально работающих программистов использует xHarbour, потому что используют их с Xailer-ами/FiveWin-ами. Реально что-то может поменяться только тогда, когда Xailer-ы/FiveWin-ы будут совместимы с Harbour. То есть, без GUI, широкие слои бразильско-мексиканских клипперистов симпатией к Harbour-у не проникнутся, даже если xHarbour развиваться не будет.



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


Пост N: 568
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 12.08.11 20:11. Заголовок: Господа! Не отклоняй..


Господа! Не отклоняйтесь от повестки дня!

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




Пост N: 2032
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 12.08.11 20:19. Заголовок: PSP пишет: Господа!..


PSP пишет:

 цитата:
Господа! Не отклоняйтесь от повестки дня!



Да с повесткой дня все в порядке :) Докладываю. implib собирается, по совету Виктора убрал hbver.h, и глюки исчезли.
Вот только в именах собираемых модулей нет возможности задать путь в виде $(HB_VAR). Так что пока тупо копирую путь 100 или сколько надо раз. Но, думаю, этот незначительный вопрос решабельный.

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




Пост N: 2033
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 12.08.11 20:24. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Реально что-то может поменяться только тогда, когда Xailer-ы/FiveWin-ы будут совместимы с Harbour. То есть, без GUI, широкие слои бразильско-мексиканских клипперистов симпатией к Harbour-у не проникнутся, даже если xHarbour развиваться не будет.



Насчет Xailer не скажу, а FiveWin от рождения и поныне прекрасно живет с Harbour, тем более его родитель (и по совместительству родитель самого Харбора) в команде разработчиков xHarbour никогда не учавствовал. Так что такая любовь генералов песчаных карьеров к xHarbour необьяснима и иррациональна.

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




Пост N: 2034
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 12.08.11 20:36. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
даже если xHarbour развиваться не будет.



Не будет - и слава богу. По моему скромному мнению проект должен быть один. И в нем должны учавствовать все силы разработчиков. В свое время проект разделился из-за конфликта и коммерческих интересов. Много лет Harbour был в упадке. Теперь ситуация переменилась, но Harbour вобрал в себя все лучшее, что было создано в xHarbour. Пусть так и остается.

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


Пост N: 569
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 12.08.11 20:39. Заголовок: Pasha! Вот вопрос: в..


Pasha!
Вот вопрос: в xHarbour есть (или по-крайней мере были) блоки кода в виде

 цитата:
< || ... >


которые позволяли использовать произвольный синтаксис языка.
К примеру, в таком блоке можно написать:

 цитата:
< ||
WHILE ! BASE->( EOF() )
...
...
END // WHILE
>


или любой другой код, а потом его выполнить посредством Eval().
Что в Харборе может аналогично работать?
(честно признаюсь: не искал... Просто сейчас вспомнилось.)


Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 237
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 12.08.11 20:54. Заголовок: PSP пишет: Что в Ха..


PSP пишет:

 цитата:
Что в Харборе может аналогично работать?


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

 цитата:
--------------------
HARBOUR ENHANCEMENTS
--------------------

The following is a very brief summary of known Harbour features and functions
that extend beyond Clipper.

Kevin Carmody
i@kevincarmody.com
21 April 2011


HARBOUR LANGUAGE ENHANCEMENTS
-----------------------------

variable number of params
... at end of param list e.g. FUNCTION MyFunc(cArg1, nArg2, ...)
may be used elsewhere e.g. { ... } array of params
HB_PVALUE(n) value of nth param
HB_APARAMS() param list

FOR EACH
FOR EACH xVal IN aArray|cString|hHash // NEXT
FOR EACH xVal IN aArray|cString|hHash DESCEND // NEXT
FOR EACH xVal1, xVal2 IN xCollect1, xCollect2 // NEXT
FOR EACH xVal IN aArray|@cString|hHash // xVal := <newval> // NEXT
xVal in hash is value, not key
x:__ENUMINDEX()
x:__ENUMKEY(), "=>", x:__ENUMVALUE()
x:__ENUMBASE()[x:__ENUMKEY()]

SWITCH
Harbour
SWITCH xVar // CASE xVal1 // EXIT // OTHERWISE // END
xVar numeric or string expression
xVal any numeric or string expression, string length up to 255
xHarbour
SWITCH xVar // CASE xConst1 // EXIT // DEFAULT // END
xVar numeric (or string?) variable (expression?)
xConst any numeric (or string length 1?) constant

reference operator extensions
proc({@p1, p2, @p3})
proc(@aVal[2], @hVal["asd"])
proc(@oBrw:autoLite)

macro operator extension
o:&("cargo") := cCargo

string character references
#include "xhb.ch"
local s := "ABCDEFG"
? s, "=>", s[2], s[4], s[6]
s[2] := LOWER(s[2])
Harbour generates error if subscript out of bounds
negative subscript works from end of string
'A' * 10, 'A' - 10, etc. works but not recommended since lack of
distinction between string and char means general use is ambiguous

escaped embedded character references
? e"Helow\r\nWorld \x21\041\x21\000abcdefgh" double quotes only
\r=\x0D \n=\x0A \b=\x08 \t=\x09 \"=\x22 \\=\x5C

timestamp or time variables
d"YYYY-MM-DD"
t"YYYY-MM-DD HH:MM:SS.fff"
date delimiter slash, dot, hyphen
time constant in this format 24 hour only
0dYYYYMMDD
0tYYYYMMDDHHMMSS suggested by Viktor but not implemented
http://www.mail-archive.com/harbour@harbour-project.org/msg09305.html
https://sourceforge.net/tracker/?func=detail&aid=3164618&group_id=681&atid=100681
HB_DATETIME, HB_CTOT, HB_TTOC, HB_STOT, HB_TTOS
YEAR(), MONTH(), DAY(), HB_HOUR(), HB_MINUTE(), HB_SEC()
VALTYPE of time value is 'T'
tVal := dVal + t"02:00"
SET(_SET_TIMEFORMAT[, cTimeForm]) time portion only HH:MM:SS.FFFF PM

symbol variables - Harbour only
sFunc := @<func>()
? sFunc:NAME, sFunc:EXEC([<anyExpList,...>])
VALTYPE 'S'

pointer variables - xHarbour only
pFunc := @<funcName>([<anyExpList,...>])
VALTYPE 'P'

hash array or hash variables
hHash := {'apple' => 'Apfel', 'dish' => 'Tisch'}
hHash['apple'] returns 'Apfel'
left is called key, right is called value
within any hash, keys must be unique, may be valtypes C N D T L
key valtypes may be mixed within single hash
string keys may be different lengths, string comparison follows SET EXACT
empty value {=>}
build hash with hHash += {<newkey> => <newval>}

$ operator extension
'apple' $ aArray
'apple' $ hHash

hexadecimal numeric constants
0x094D

extended code blocks
Harbour
bExtend := {|cArg1, nArg2|
LOCAL cCombo := ''
IF EMPTY(cArg1)
ALERT('No character arg')
ELSE
cCombo := cArg1 + STR(nArg2)
ENDIF
? cCombo
RETURN
}
xHarbour
bExtend := <|cArg1, nArg2|
LOCAL cCombo := ''
IF EMPTY(cArg1)
ALERT('No character arg')
ELSE
cCombo := cArg1 + STR(nArg2)
ENDIF
? cCombo
>

classes
CLASS classname
VAR xClassVar1, cClassVar2, ...
DATA xObjectVar1, cObjectVar2, ...
METHOD method1
METHOD method2
ENDCLASS
METHOD classname:method1(...)
::xClassVar1 := ...
RETURN self
METHOD classname:method2(...)
LOCAL cVal
cVal := REPLICATE(::cClassVar2, 2)
RETURN cVal

NEW FUNCTIONS
-------------

HB_ADEL
HB_ADLER32
HB_AINS
HB_ALERT
HB_ANSITOOEM
HB_APARAMS
HB_ARGC
HB_ARGCHECK
HB_ARGSHIFT
HB_ARGSTRING
HB_ARGV
HB_ARRAYTOPARAMS
HB_ASCAN
HB_ASCIIISALPHA
HB_ASCIIISDIGIT
HB_ASCIIISLOWER
HB_ASCIIISUPPER
HB_ASCIILOWER
HB_ASCIIUPPER
HB_AT
HB_ATI
HB_ATOKENS
HB_ATX
HB_BASE64DECODE
HB_BASE64ENCODE
HB_BITAND
HB_BITNOT
HB_BITOR
HB_BITRESET
HB_BITSET
HB_BITSHIFT
HB_BITTEST
HB_BITXOR
HB_BLOWFISHDECRYPT
HB_BLOWFISHENCRYPT
HB_BLOWFISHKEY
HB_BUILDDATE
HB_BYTESWAPI
HB_BYTESWAPL
HB_BYTESWAPLL
HB_BYTESWAPU
HB_BYTESWAPW
HB_CDPINFO
HB_CDPLIST
HB_CDPSELECT
HB_CDPUNIID
HB_CLOCKS2SECS
HB_CLRAREA
HB_CMDLINE
HB_COLORINDEX
HB_COLORTON
HB_COMCLOSE
HB_COMDISCARDCHAR
HB_COMERRORCHAR
HB_COMFLOWCHARS
HB_COMFLOWCONTROL
HB_COMFLOWSET
HB_COMFLUSH
HB_COMGETDEVICE
HB_COMGETDEVICEHANDLE
HB_COMGETERROR
HB_COMGETOSERROR
HB_COMINIT
HB_COMINPUTCOUNT
HB_COMINPUTSTATE
HB_COMLASTNUM
HB_COMLSR
HB_COMMCR
HB_COMMSR
HB_COMOPEN
HB_COMOUTPUTCOUNT
HB_COMOUTPUTSTATE
HB_COMPILER
HB_COMRECV
HB_COMSEND
HB_COMSENDBREAK
HB_COMSETDEVICE
HB_COMSETERROR
HB_CRC
HB_CRC16
HB_CRC32
HB_CRCCT
HB_CSTR
HB_CTOD
HB_CTOT
HB_CURDRIVE
HB_CWD
HB_DATE
HB_DATETIME
HB_DBCREATETEMP
HB_DBDETACH
HB_DBDROP
HB_DBEXISTS
HB_DBPACK
HB_DBRENAME
HB_DBREQUEST
HB_DBZAP
HB_DESERIALIZE
HB_DIRSEPADD
HB_DIRSEPDEL
HB_DIRBASE
HB_DIRBUILD
HB_DIRCREATE
HB_DIRDELETE
HB_DIREXISTS
HB_DIRSCAN
HB_DIRTEMP
HB_DIRUNBUILD
HB_DISABLEWAITLOCKS
HB_DISKSPACE
HB_DISPBOX
HB_DISPOUTAT
HB_DISPOUTATBOX
HB_DTOC
HB_DTOT
HB_DYNCALL
HB_ENDOBJECT
HB_EOL
HB_EXECFROMARRAY
HB_EXECMSG
HB_FCOMMIT
HB_FCOPY
HB_FCREATE
HB_FEOF
HB_FGETATTR
HB_FGETDATETIME
HB_FIELDDEC
HB_FIELDLEN
HB_FIELDTYPE
HB_FILEEXISTS
HB_FILEMATCH
HB_FISDEVICE
HB_FLINK
HB_FLINKREAD
HB_FLINKSYM
HB_FLOCK
HB_FNAMEDIR
HB_FNAMEEXISTS
HB_FNAMEEXT
HB_FNAMEEXTSET
HB_FNAMEEXTSETDEF
HB_FNAMEMERGE
HB_FNAMENAME
HB_FNAMENAMEEXT
HB_FNAMESPLIT
HB_FORNEXT
HB_FSETATTR
HB_FSETDATETIME
HB_FSETDEVMODE
HB_FSIZE
HB_FTEMPCREATE
HB_FTEMPCREATEEX
HB_FUNLOCK
HB_GCALL
HB_GCSTEP
HB_GET
HB_GETENV
HB_GETREADVAR
HB_GETSTDERR
HB_GETSTDIN
HB_GETSTDOUT
HB_GFXPRIMITIVE
HB_GFXTEXT
HB_GTALERT
HB_GTCREATE
HB_GTINFO
HB_GTLOCK
HB_GTRELOAD
HB_GTSELECT
HB_GTSYS
HB_GTUNLOCK
HB_GTVERSION
HB_GZCLEARERR
HB_GZCLOSE
HB_GZCOMPRESS
HB_GZCOMPRESSBOUND
HB_GZDIRECT
HB_GZDOPEN
HB_GZEOF
HB_GZERROR
HB_GZFLUSH
HB_GZGETC
HB_GZGETS
HB_GZOPEN
HB_GZPUTC
HB_GZPUTS
HB_GZREAD
HB_GZREWIND
HB_GZSEEK
HB_GZSETPARAMS
HB_GZTELL
HB_GZUNGETC
HB_GZWRITE
HB_HALLOCATE
HB_HASH
HB_HAUTOADD
HB_HBINARY
HB_HCASEMATCH
HB_HCLONE
HB_HCOPY
HB_HDEFAULT
HB_HDEL
HB_HDELAT
HB_HEVAL
HB_HEXTONUM
HB_HEXTOSTR
HB_HFILL
HB_HGET
HB_HGETDEF
HB_HHASKEY
HB_HKEEPORDER
HB_HKEYAT
HB_HKEYS
HB_HMAC_SHA1
HB_HMAC_SHA224
HB_HMAC_SHA256
HB_HMAC_SHA384
HB_HMAC_SHA512
HB_HMERGE
HB_HOUR
HB_HPAIRAT
HB_HPOS
HB_HRBDO
HB_HRBGETFUNSYM
HB_HRBLOAD
HB_HRBRUN
HB_HRBSIGNATURE
HB_HRBUNLOAD
HB_HSCAN
HB_HSET
HB_HSETAUTOADD
HB_HSETBINARY
HB_HSETCASEMATCH
HB_HSETORDER
HB_HSORT
HB_HVALUEAT
HB_HVALUES
HB_I18N_ADDTEXT
HB_I18N_CHECK
HB_I18N_CODEPAGE
HB_I18N_CREATE
HB_I18N_DESCRIPTION
HB_I18N_GETTEXT
HB_I18N_GETTEXT_STRICT
HB_I18N_HEADERSIZE
HB_I18N_LOADPOT
HB_I18N_NGETTEXT
HB_I18N_NGETTEXT_STRICT
HB_I18N_PLURALFORM
HB_I18N_RESTORETABLE
HB_I18N_SAVEPOT
HB_I18N_SAVETABLE
HB_I18N_SET
HB_IDLEADD
HB_IDLEDEL
HB_IDLERESET
HB_IDLESLEEP
HB_IDLESTATE
HB_INETACCEPT
HB_INETADDRESS
HB_INETCLEANUP
HB_INETCLEARERROR
HB_INETCLEARPERIODCALLBACK
HB_INETCLEARTIMELIMIT
HB_INETCLEARTIMEOUT
HB_INETCLOSE
HB_INETCOMPRESS
HB_INETCONNECT
HB_INETCONNECTIP
HB_INETCOUNT
HB_INETCREATE
HB_INETCRLF
HB_INETDATAREADY
HB_INETDGRAM
HB_INETDGRAMBIND
HB_INETDGRAMRECV
HB_INETDGRAMSEND
HB_INETERRORCODE
HB_INETERRORDESC
HB_INETFD
HB_INETGETALIAS
HB_INETGETHOSTS
HB_INETGETRCVBUFSIZE
HB_INETGETSNDBUFSIZE
HB_INETIFINFO
HB_INETINIT
HB_INETISSOCKET
HB_INETPERIODCALLBACK
HB_INETPORT
HB_INETRECV
HB_INETRECVALL
HB_INETRECVENDBLOCK
HB_INETRECVLINE
HB_INETSEND
HB_INETSENDALL
HB_INETSERVER
HB_INETSETRCVBUFSIZE
HB_INETSETSNDBUFSIZE
HB_INETSTATUS
HB_INETTIMELIMIT
HB_INETTIMEOUT
HB_ININEW
HB_INIREAD
HB_INIREADSTR
HB_INISETCOMMENT
HB_INIWRITE
HB_INIWRITESTR
HB_ISARRAY
HB_ISBLOCK
HB_ISCHAR
HB_ISDATE
HB_ISDATETIME
HB_ISHASH
HB_ISLOGICAL
HB_ISMEMO
HB_ISNIL
HB_ISNULL
HB_ISNUMERIC
HB_ISOBJECT
HB_ISPOINTER
HB_ISPRINTER
HB_ISREGEX
HB_ISSTRING
HB_ISSYMBOL
HB_ISTIMESTAMP
HB_JSONDECODE
HB_JSONENCODE
HB_KEYCLEAR
HB_KEYINS
HB_KEYPUT
HB_LANGERRMSG
HB_LANGMESSAGE
HB_LANGNAME
HB_LANGSELECT
HB_LIBERROR
HB_LIBEXT
HB_LIBFREE
HB_LIBGETFUNSYM
HB_LIBLOAD
HB_LIBNAME
HB_LIBPREFIX
HB_LPPCREATE
HB_LPPDESTROY
HB_LPPERROR
HB_LPPRECV
HB_LPPRECVLEN
HB_LPPSEND
HB_LPPSENDLEN
HB_LPPSETLIMIT
HB_MACROBLOCK
HB_MATHERBLOCK
HB_MATHERMODE
HB_MD5
HB_MD5FILE
HB_MEMOREAD
HB_MEMOWRIT
HB_METHODNAME
HB_MILLISECONDS
HB_MINUTE
HB_MMIDDLEDOWN
HB_MTVM
HB_MUTEXCREATE
HB_MUTEXLOCK
HB_MUTEXNOTIFY
HB_MUTEXNOTIFYALL
HB_MUTEXQUEUEINFO
HB_MUTEXSUBSCRIBE
HB_MUTEXSUBSCRIBENOW
HB_MUTEXUNLOCK
HB_MVRESTORE
HB_MVSAVE
HB_NTOCOLOR
HB_NTOS
HB_NTOT
HB_NUMTOHEX
HB_OEMTOANSI
HB_OSDRIVESEPARATOR
HB_OSERROR
HB_OSFILEMASK
HB_OSISWIN2K
HB_OSISWIN9X
HB_OSISWINCE
HB_OSISWINNT
HB_OSISWINVISTA
HB_OSNEWLINE
HB_OSPATHDELIMITERS
HB_OSPATHLISTSEPARATOR
HB_OSPATHSEPARATOR
HB_PATHJOIN
HB_PATHRELATIVIZE
HB_PATHNORMALIZE
HB_PCODEVER
HB_PROCESSCLOSE
HB_PROCESSOPEN
HB_PROCESSRUN
HB_PROCESSVALUE
HB_PROGNAME
HB_PS
HB_PVALUE
HB_RANDOM
HB_RANDOMINT
HB_RANDOMSEED
HB_RASCAN
HB_RAT
HB_RDDGETTEMPALIAS
HB_RDDINFO
HB_REGEX
HB_REGEXALL
HB_REGEXATX
HB_REGEXCOMP
HB_REGEXHAS
HB_REGEXLIKE
HB_REGEXMATCH
HB_REGEXSPLIT
HB_RELEASECPU
HB_RUN
HB_SCRMAXCOL
HB_SCRMAXROW
HB_SCROLL
HB_SEC
HB_SECONDSCPU
HB_SERIALIZE
HB_SETCLSHANDLE
HB_SETDISPCP
HB_SETENV
HB_SETKEY
HB_SETKEYARRAY
HB_SETKEYCHECK
HB_SETKEYCP
HB_SETKEYGET
HB_SETKEYSAVE
HB_SETLASTKEY
HB_SETMACRO
HB_SETOBJECT
HB_SETTERMCP
HB_SHA1
HB_SHA224
HB_SHA256
HB_SHA384
HB_SHA512
HB_SHADOW
HB_SOCKETACCEPT
HB_SOCKETBIND
HB_SOCKETCLOSE
HB_SOCKETCONNECT
HB_SOCKETERRORSTRING
HB_SOCKETGETERROR
HB_SOCKETGETHOSTNAME
HB_SOCKETGETHOSTS
HB_SOCKETGETIFACES
HB_SOCKETGETOSERROR
HB_SOCKETGETPEERNAME
HB_SOCKETGETRCVBUFSIZE
HB_SOCKETGETSNDBUFSIZE
HB_SOCKETGETSOCKNAME
HB_SOCKETLISTEN
HB_SOCKETOPEN
HB_SOCKETRECV
HB_SOCKETRECVFROM
HB_SOCKETRESOLVEADDR
HB_SOCKETRESOLVEINETADDR
HB_SOCKETSELECT
HB_SOCKETSELECTREAD
HB_SOCKETSELECTWRITE
HB_SOCKETSELECTWRITEEX
HB_SOCKETSEND
HB_SOCKETSENDTO
HB_SOCKETSETBLOCKINGIO
HB_SOCKETSETBROADCAST
HB_SOCKETSETEXCLUSIVEADDR
HB_SOCKETSETKEEPALIVE
HB_SOCKETSETMULTICAST
HB_SOCKETSETNODELAY
HB_SOCKETSETRCVBUFSIZE
HB_SOCKETSETREUSEADDR
HB_SOCKETSETSNDBUFSIZE
HB_SOCKETSHUTDOWN
HB_STOD
HB_STOT
HB_STRCDECODE
HB_STRCLEAR
HB_STRDECODESCAPE
HB_STRFORMAT
HB_STRSHRINK
HB_STRTOEXP
HB_STRTOHEX
HB_STRTOTS
HB_STRTOUTF8
HB_STRXOR
HB_THREADDETACH
HB_THREADID
HB_THREADJOIN
HB_THREADONCE
HB_THREADONCEINIT
HB_THREADQUITREQUEST
HB_THREADSELF
HB_THREADSTART
HB_THREADTERMINATEALL
HB_THREADWAIT
HB_THREADWAITFORALL
HB_TOKENCOUNT
HB_TOKENGET
HB_TOKENPTR
HB_TRACEFILE
HB_TRACEFLUSH
HB_TRACELEVEL
HB_TRACELOG
HB_TRACELOGAT
HB_TRACELOGLEVEL
HB_TRACESTATE
HB_TRACESTRING
HB_TRACESYSOUT
HB_TRANSLATE
HB_TSTOSTR
HB_TTOC
HB_TTOD
HB_TTON
HB_TTOS
HB_USERLANG
HB_USERNAME
HB_UTCOFFSET
HB_UTF8ASC
HB_UTF8AT
HB_UTF8CHR
HB_UTF8LEFT
HB_UTF8LEN
HB_UTF8PEEK
HB_UTF8POKE
HB_UTF8RAT
HB_UTF8RIGHT
HB_UTF8STRTRAN
HB_UTF8STUFF
HB_UTF8SUBSTR
HB_UTF8TOSTR
HB_VALTOEXP
HB_VALTOSTR
HB_VERSION
HB_WAEVAL
HB_WILDMATCH
HB_WILDMATCHI
HB_ZCOMPRESS
HB_ZCOMPRESSBOUND
HB_ZERROR
HB_ZLIBVERSION
HB_ZUNCOMPRESS
HB_ZUNCOMPRESSLEN



Надеюсь, некоторые вопросы о Харборе теперь сняты

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 265
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 12.08.11 21:00. Заголовок: Еще интересно почита..


Еще интересно почитать harbour/doc/xhb-diff.txt by Przemyslaw Czerpak

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




Пост N: 2035
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 12.08.11 21:02. Заголовок: Имеется в виду Exten..


Имеется в виду Extended Codeblocks, tests\extblock.prg ?

К моему удивлению, harbour их поддерживает. Только синтаксис немного другой, традиционный:

{ ||
WHILE ! BASE->( EOF() )
...
...
END // WHILE
}


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




Пост N: 2051
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 07.09.11 12:46. Заголовок: Massimo Belgrano сде..


Massimo Belgrano сделал небольшое описание для hbmk2:

http://harbourlanguage.blogspot.com/2010/02/using-hbmk2.html


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




Пост N: 2482
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.12.12 15:16. Заголовок: Pasha пишет: CurDri..


Pasha пишет:

 цитата:
CurDrive лучше заменить для harbour на hb_curdrive, чтобы не цепять либу hbxpp, которая не входит в ядро:

#ifndef __XHARBOUR__
#xtranslate CurDrive() => hb_CurDrive()
#endif

Вместо батника, или лучше в дополнение к нему, лучше дать скрипт SmplDemo.hbp:

-inc

-o${hb_name}

-w3 -es0

-prgflag=-l

smpldemo.prg
fastreph.prg

Поскольку утилита, упомянутая в сабже, является штатным средством сборки для Harbour. С ее помощью пример можно будет собрать любым C компилятором на win-платформе, а не только bcc
По поводу bcc: у Виктора уже чесались руки убрать его поддержку совсем, так как это морально устаревший компилятор. Пока его оставили, но, думаю, ненадолго.



А использование CurDrive в МиниГуи также увеличивает размер EXE-файла ?
Чем нужно заменить функции CurDrive() + ":\" + CurDir() ?

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




Пост N: 2618
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 17.12.12 16:15. Заголовок: Andrey пишет: А исп..


Andrey пишет:

 цитата:
А использование CurDrive в МиниГуи также увеличивает размер EXE-файла ?
Чем нужно заменить функции CurDrive() + ":\" + CurDir() ?



hb_CurDrive() + ":\" + CurDir()

Использование hb_CurDrive() вместо CurDrive() не увеличивает и не уменьшает размер exe. Просто аналогичная функция будет прилинкована из другой библиотеки, вместо hbxpp - из rtl.


Спасибо: 1 
ПрофильЦитата Ответить
Ответов - 36 , стр: 1 2 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 201
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет