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




Пост N: 8068
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.10.25 10:09. Заголовок: MiniGui + hbcurl


Сделал маленький пример который выдал Deep-Seek
Скрытый текст

Сделал для него сборку -
Скрытый текст

Не собирается, выдаёт ошибки:
Harbour 3.2.0dev (r2503200530) 
Copyright (c) 1999-2024, https://harbour.github.io/
test.prg(38) Warning W0001 Ambiguous reference 'CURLOPT_URL'
test.prg(39) Warning W0001 Ambiguous reference 'CURLOPT_FOLLOWLOCATION'
test.prg(40) Warning W0001 Ambiguous reference 'CURLOPT_SSL_VERIFYPEER'
hbmk2[test]: Error: Running Harbour compiler (built-in). 1

И как собрать ?

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


постоянный участник




Пост N: 4852
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 28.10.25 20:06. Заголовок: Haz пишет спросил гл..


Haz пишет
 цитата:
спросил глубокого искателя


Гугл сказал, что "черты глубокого искателя:
Стремление к поиску: Это не просто поиск чего-то конкретного, а сам процесс познания и самопознания, который является целью. " Т.е. главное не решение, а "сам процесс ... является целью"

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




Пост N: 8089
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.10.25 23:05. Заголовок: Заработала программа..


Заработала программа c libcurl.dll
Касперский её блокировал !
Хотя папка была добавлена в исключения проверок !

Заработали ещё 2 примера для скачивания:
1) использование Win_OleCreateObject( "MSXML2.ServerXMLHTTP" )
2) использование URLDownloadToFile( cUrl, cTmpFile ) с библиотекой urlmon.lib

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




Пост N: 8180
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.10.25 08:34. Заголовок: Andrey пишет: Каспе..


Andrey пишет:

 цитата:
Касперский её блокировал !
Хотя папка была добавлена в исключения проверок !


И как ты блок обошел, снёс каспера ?

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




Пост N: 8090
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.10.25 11:13. Заголовок: Dima пишет: И как т..


Dima пишет:

 цитата:
И как ты блок обошел, снёс каспера ?


Отключил на время проверки.

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




Пост N: 2014
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 29.10.25 20:48. Заголовок: Haz пишет: Скорее в..


Haz пишет:

 цитата:
Скорее всего нужно имитировать многопоточку.


Накидал тест в многопоточке , 8 поток качают файл за 12 секунд в среднем.
Пока на паузе, хотелось бы статус по каждому потоку выводить но в консоли это гемор с мютексами.
А так 8 частей создаётся, и с разной скоростью качаются.
За основу взял дипсика , и естественно в чистую он не работает. Но направление дает верное.
Это как анекдот:
Хозяйка мастеру:
-Вы. Так быстро и хорошо все сделали, наверное у вас инструменты хорошие?
Мастер хозяйке:
-А вы такой вкусный борщ сварили, наверное у Вас кастрюля хорошая.

Так вот, дипсик это кастрюля, что положишь, то и будешь есть.
Нужны ещё 2 мелочи
-руки
-голова ...

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




Пост N: 4853
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 29.10.25 21:12. Заголовок: Haz пишет Нужны ещё ..


Haz пишет
 цитата:
Нужны ещё 2 мелочи
-руки
-голова ...


Игорь, это все хорошо, замечательно , а смысл в чем, кроме работы ?
Я ранее давал время скачивания от величины буфера
 
.T.
8K Sec. 11.00
.T.
16K Sec. 15.51
.T.
32K Sec. 11.34
.T.
64K Sec. 12.59
.T.
128K Sec. 11.36

повторил с 128К сейчас 10.569 сек., когда сервер трудится, занят ~29 сек бывает чуть больше (от сервера зависит, не от клиента)
PS.
С индикацией процесса с curl_easy_setopt( hCurl, HB_CURLOPT_PROGRESSBLOCK, {|npos,nlen| Curl_DownLoad(npos,nlen) })
идет 14.319 сек. скачивание

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




Пост N: 2015
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 29.10.25 21:30. Заголовок: SergKis пишет: смыс..


неь аналог качалки на харбуре, был интерес сравнить и оценить возможность не для этой задачи, а для асинхронного обмена с другими системами по rest API в многопользовательском режиме ( например online запросы на новые задачи и документы в сэд). До этого пользовался MSHTTP, пока вижу curl гибче будет, но MSHTTP универсальннее. Просто пробую что устойчивее будет

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




Пост N: 4854
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 29.10.25 21:37. Заголовок: Haz пишет Вывод mt р..


Haz пишет
 цитата:
Вывод mt работает, но это не задача для hmg, как и сам топик т.к. проще процессом вызвать curl.exe


-mt в hmg проектах стоит постоянно, а с последним полностью согласен проще процессом вызвать curl.exe

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




Пост N: 2016
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 29.10.25 21:43. Заголовок: SergKis пишет: прощ..


SergKis пишет:

 цитата:
проще процессом вызвать curl.exe


Не всегда, иногда нужен контроль над процессом изнутри, чтобы управлять им, а не тупо ждать исполнения.
Попробуй представить работу со сторонней системой через API при 100 пользователях через exec


PS
Браузер зожрал ответ. Но суть в том что без mt у меня 30 сек с mt 12
Твой тест не сопоставим , у меня на работе инет 20мб в лучшем на нем 11 сек выдашь?

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




Пост N: 4855
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 29.10.25 21:58. Заголовок: Haz пишет иногда нуж..


Haz пишет
 цитата:
иногда нужен контроль над процессом изнутри чтобы управлять им, а не тупо ждать исполнения.


Всегда занимался именно этим, со времен clipper, VO, но всегда заканчивалось одинаково, то программное обеспечение переставало поддерживаться со временем, то windows менялся хз как, то ... еще что нибудь и приходилось переходить на системные утилиты от управления изнутри и поверь работало, только в одной организации, более 900 раб.мест баланса, более 600 раб. мест материалов и ... вся бухгалтерия и тупое ожидание завершения с проверками errorlevel не худший вариант, но надежный, что всегда важнее, по мне

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




Пост N: 2017
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 29.10.25 22:10. Заголовок: SergKis пишет: с пр..


SergKis пишет:

 цитата:
с проверками errorlevel не худший вариант, но надежный, что всегда важнее, по мне



С телефона неудобно писать.
Внешние утилиты , надёжнее бесспорно, но помимо еррорлевел ничего не дают, или дают текст в выводе. Попробуй перехвати текст утилиты администрирования теневого копирования на x64 из под х32 программы ? Не получится не перенаправлением ни stdout.
Или как написать скрипт для curl из 10 запросов когда они созависимы ? Парсингом извращаться не всем нравится.
Ну и в итоге я же не навязываю что то делать, не интересно как говорится, проходи мимо, я тут часто мимо прохожу 😁

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




Пост N: 4856
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 29.10.25 22:23. Заголовок: Haz пишет Попробуй п..


Haz пишет
 цитата:
Попробуй перехвати текст утилиты администрирования теневого копирования на x64 из под х32 программы ? Не получится не перенаправлением ни stdout.


Мы о разном. Ты о своей базе, организации, своя администация ее и т.д., а я о пользовательской стороне, на разношерстных PC, сетях ... где даже не бывал, где администрированием занимается неизвестно кто и надо просто обеспечить надежное функционирование раб.места, сеть по IP и все. А так да, не надо, не используй

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




Пост N: 2018
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 30.10.25 10:07. Заголовок: SergKis пишет: Мы о..


SergKis пишет:

 цитата:
Мы о разном.


Добрался до ноута
Сергей, об одном и том же.
Haz пишет:

 цитата:
hbcurl это обертка в harbour , лучше пользовать вызовы curl.exe в таком случае



Ты о том, что не стоит изобретать велосипед для простых задач и я полностью согласен
К примеру вызов внешнего архиватора справится с задачей куда эффективней чем самописный из программы. В нашей теме curl.exe точно предпочтительнее будет.
Но бывают случаи когда вызов внешнего процесса добавляет работы. Вот практическая задача по бекапу базы ads в которую вцепились пользователи и любой внешний архиватор пропустит залоченные файлы
вариантов не много:
1 самый простой ( если используются словари ads ) это вызов sql запроса с sp_adsbackup() но долгий
2 выгнать всех пользователей - и тут же плачь Ярославны и проклятия из всех углов
3 использование теневого копирования. Внешние утилиты есть ( vssadmin, mklink, hobocopy ... ) и только hobocopy позволяет обойтись одним вызовом , а если она не совместима с онерационкой то целый квест с парсингом ответов от системного vss и mlink.
4. Wmi классная штука , но эта собака работает с "select * from Win32_ShadowCopy" только если программа и система в одной разрядности
так что и вызов внешней не всегда универсален

что касается наших баранов или curl - тест многопоточки делал с целью проверки работоспособности и заодно скорости.
есть у меня старый проект интеграции двух систем с bitrix24, это restFull сервер который по http ловит запрос из 1С7 (только MSHHTP по другому не умеет ) передает в bitrix и ответ в мой проект
в RestFull все делал на сокетах код громадный, каждый запрос в новом потоке , вот и решил перед рывком протестировать curl'
Результат условно удовлетворил, код читаемый, легко заворачивается в класс и становится универсальным и компактным и в потоках работает нормально. Поставил себе на будущее переписать RestFull на hbCurl

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




Пост N: 4857
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 30.10.25 10:32. Заголовок: Haz пишет Твой тест ..


Haz пишет
 цитата:
Твой тест не сопоставим , у меня на работе инет 20мб в лучшем на нем 11 сек выдашь?


1. Таких клиентов, у нас, не найти, кто не может купить, на крайняк, телефон\карту с интернетом (3G модемы уже все - убирают эту связь, 2G, 4G,... ) для таких целей скачать большие данные
2. На таких клиентах не то, что заработать, свои штаны бы не потерять, т.е. отбить затраты хотя бы на внедрение, да же в рекламных целях
3. Нет специалистов у таких фирм, т.к. нет денег на содержание их, в лучшем случае админ - чей то сын\знакомый, хорошо, если не школьник с уклоном IT
...

 цитата:
Wmi классная штука


У клиентов, как правило, все заблокировано админами - недоступно, есть только выделенное пространство для баз, программ и IP соединения + LetoDbf сервер. Расчитывать на плюшки .. полная безнадега

 цитата:
тест многопоточки делал с целью проверки работоспособности и заодно скорости.
есть у меня старый проект интеграции двух систем с bitrix24


Похожие варианты (спец. подход к клиенту) есть, но это выборочно и не для всех. Есть клиенты с 90х годов и у них всякого накопилось из старого, что иногда надо запускать (уже PC таких нет где это может работать). Но это исключение, таких мало осталось., единицы. Все давно куплено, перекуплено, а новые хозяева идет со своим ПО, оборудованием - там людей программистов -разработчиков нет, если надо стыковать - по удаленке договорились о форматах и способах (1,2е встречи) - все.

 цитата:
практическая задача по бекапу базы ads в которую вцепились пользователи и любой внешний архиватор пропустит залоченные файлы


Практически не оплатит никто эту работу (перечисленные тобой варианты выше), найдут технический час, полчаса для этих целей, при пересменке, например в 7.00, т.к. через время, кто будет сопровождать сделанное, ты в отпуске или на пенсии ...
По мне вопрос с curl закрыт.
Диме спасибо за введение, пример, во встроенный curl в hb Был далек от этого

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




Пост N: 8183
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 30.10.25 10:48. Заголовок: Haz пишет: и только..


Haz пишет:

 цитата:
и только hobocopy позволяет обойтись одним вызовом


Игорь не пробовал вот это ?
Это наследник HoboCopy.
Там кстати тоже всего 1 вызов
https://www.softpaz.com/software/download-shadowspawn-windows-43716.htm

тут еще можно взять (2023 года)
https://github.com/itss-david/shadowspawn/releases
Я пожалуй пробну у себя

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




Пост N: 2019
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 30.10.25 12:34. Заголовок: Dima пишет: Игорь н..


Dima пишет:

 цитата:
Игорь не пробовал вот это ?
Это наследник HoboCopy.


Дим привет, не слышал даже. попробую . Спасибо
Почитал - судя по описанию делает текущую копию и монтирует диском, потом выполняет команду и размонтирует , для бекапа более чем достаточно

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




Пост N: 8184
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 30.10.25 16:03. Заголовок: Haz Работает однако..


Haz
Работает однако.
Вывод на экран подавил
 
n:=hb_processrun("ShadowSpawn-X64.exe /verbosity=0 "+pathbase+"dbf\ A: roboCOPY A:\ "+pathbase+"zip\ *.cdx *.dbf /MT:16",@c ,@c1 ,@c2 ,.f.)

Но код возврата с Robocopy 32769, пробовал с Xcopy и Copy там код возврата 0
Судя по мануалу такой код возврата это нормально
 
Exit Status:

If there is an error while processing (e.g. ShadowSpawn fails to
create the shadow copy), ShadowSpawn exits with status 1.

If there is an error in usage (i.e. the user specifies an unknown
option), ShadowSpawn exits with status 2.

If everything else executes as expected and <command> exits with
status zero, ShadowSpawn also exits with status 0.

If everything else executes as expected and <command> exits with a
nonzero status code n, ShadowSpawn exits with status n logically OR'ed
with 32768 (0x8000). For example, robocopy exits with status 1 when
one or more files are Scopied. So, when executing

shadowspawn C:\foo X: robocopy X:\ C:\path\to\backup /mir

the exit code of ShadowSpawn would be 32769 (0x8000 | 0x1).




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




Пост N: 8092
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 31.10.25 14:20. Заголовок: Имею на сайте такой ..


Имею на сайте такой файл - https://abonent4.ru/downloads/minigui/C#_DataGrid(0.1).7z и C#_DevExpress.7z
Пытаюсь скачать, libcurl выдаёт ошибку - HTTP response code said error (22)
Все другие файлы скачиваются !
Почему и как это исправить ?

Через метод - Win_OleCreateObject( "MSXML2.ServerXMLHTTP" ) - файлы скачивается.
Через метод - URLDownloadToFile( cUrl, cFile ) - эти файлы тоже НЕ скачиваются.

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




Пост N: 8186
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 31.10.25 15:02. Заголовок: Andrey пишет: Почем..


Andrey пишет:

 цитата:
Почему и как это исправить ?


LibCurl не любит в именах файлов символ #, его нужно экранировать
FireFox тоже на хрен послал с таким файлом

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




Пост N: 8187
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 31.10.25 15:10. Заголовок: на следующий вопрос ..


на следующий вопрос ответ такой
 
hb_StrReplace(cfile,"#",{"%23"})


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

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