On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение





Пост N: 29
Зарегистрирован: 06.12.14
ссылка на сообщение  Отправлено: 19.10.20 18:33. Заголовок: Помогите с С если есть возможность


bufferget( @<cRead>) --> <nCount> типа такого должно вызываться в харборе

PHB_ITEM pRead = hb_param( 1, HB_IT_BYREF ); наверное так принимается параметр

int num;
do {
char buffer[0x2000];
num = buffer_read(input, buffer, sizeof(buffer) );
if(num > 0) {
int i;
count += num;
fprintf(stderr, "read:\n");
for( i = 0; i < num; ++i ) fputc( buffer , stderr );
fprintf(stderr, "\n");
}
}
while(num > 0);

как сложить в переменную то, что идет в stderr и вернуть по ссылке?
сколько упадет тоже заранее неизвестно оно выдается порциями

в сях не силен, могу только по образу и подобию смастерить, но что-то подходящего примера не нашел (

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


Администратор




Пост N: 3985
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 20.10.20 08:20. Заголовок: Для строки надо выде..


Для строки надо выделять память:

char * szRet = hb_xgrab( ulLen );

увеличить размер строки:

szRet = hb_xrealloc( szRet, ulNewLen );

Принять 1-й параметр:

char * szStr = hb_parc( 1 );

Вернуть 1-й параметр по ссылке (освобождать память не надо):

if( HB_ISBYREF( 1 ) )
hb_storclen_buffer( szRet, ulLen, 1);

освободить память (если параметр не по ссылке):

hb_xfree( szRet );

PS В операциях выделения памяти к длине надо добавлять +1, для нулевого байта

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




Пост N: 3480
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 20.10.20 12:25. Заголовок: finder Может эти ф-..


finder
Может эти ф-ии подойдут http://www.kresin.ru/hrbfaq_3.html#Doc13_4

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



Пост N: 131
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 22.10.20 10:55. Заголовок: Добрый день, коллеги..


Добрый день, коллеги.
Возможно не в этой теме, но вопрос касается C++. Скачал xharbour 10261 +BCC 73064.
Как настроить и использовать возможности x64?
Сейчас проект крутиться на xHarbour 1.2.3 Intl. (SimpLex) (Build 20200311) и Borland C++ 5.82 for Win32 Copyright (c) 1993, 2005 Borland

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


Пост N: 1436
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 26.10.20 16:03. Заголовок: Oskar_AAA пишет: Ка..


Oskar_AAA пишет:

 цитата:
Как настроить и использовать возможности x64?


Гм... Да нет никаких особых возможностей x64. Большее адресуемое пространство, больше возможный размер строк, ну и т.п.
Настроек вроде специальных не требуется. Я на Windows x64 не собирал, а на Linux - все как обычно.

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





Пост N: 284
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 28.10.20 10:51. Заголовок: воспользовался кодом..


воспользовался кодом А.Кресина SELECTFILE()

 цитата:
HB_FUNC( SELECTFILE ) { //выбор файла winAPI
OPENFILENAME ofn;
char buffer[512];
char *strFilter;
char *str1 = hb_parc( 1 );
char *str2 = hb_parc( 2 );
char *initDir = hb_pcount()>2 ? hb_parc(3):NULL;
char *cTitle = hb_pcount()>3 ? hb_parc(4):NULL;



выделенные строки дают предупреждение при компиляции:
Warning W8075 d:\\magazin\\magazin.prg 16298: Suspicious pointer conversion in function HB_FUN_SELECTFILE
Warning W8075 d:\\magazin\\magazin.prg 16299: Suspicious pointer conversion in function HB_FUN_SELECTFILE
Warning W8075 d:\\magazin\\magazin.prg 16300: Suspicious pointer conversion in function HB_FUN_SELECTFILE
Warning W8075 d:\\magazin\\magazin.prg 16301: Suspicious pointer conversion in function HB_FUN_SELECTFILE


Что нужно поправить ? Код отрабатывает нормально

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


Пост N: 1437
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 28.10.20 12:27. Заголовок: Поставьте перед всем..


Поставьте перед всеми hb_parc() (char*):

char *str1 = (char*) hb_parc( 1 );

hb_parc() возвращает const char*, поэтому нужно преобразование типов, чтобы не было предупреждений - хотя эти предупреждения не критичны.

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





Пост N: 329
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 17.05.22 19:38. Заголовок: MIKHAIL пишет: восп..


MIKHAIL пишет:

 цитата:
воспользовался кодом А.Кресина SELECTFILE()



заметил что после отработки этой функции перестает работать KBDSTAT(), что то в коде на С видимо нужно поправить...

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


Пост N: 1474
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 18.05.22 10:26. Заголовок: В коде hwg_selectfil..


В коде hwg_selectfile() нет ничего, что непосредственно могло бы иметь отношение к kbdstat(). Думаю, проблема как-то связана с тем, что стандартный GUI диалог вызывается из приложения, сделанного на одном из gt (gtwvt, ...) и, таким образом, обработка ввода с клавиатуры прерывается.
Тут поэкспериментировать надо. Может kbdstat() опять начинает работать после каких-то операций ввода/вывода средствами gt.

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





Пост N: 330
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 18.05.22 20:34. Заголовок: alkresin пишет: Мож..


alkresin пишет:

 цитата:
Может kbdstat() опять начинает работать после каких-то операций ввода/вывода средствами gt.



заменил kbdstat() на GetAsyncKeyState()

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

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