andrestudio писал(а):
Скомпелировал в Delphi 1) кого "скомпелировал"

2) правильно писать скомпилировал
3) приведи коды "скопированного" строки с 10-й по 20-ю
Ответов: 9906
Рейтинг: 351
|
|||
andrestudio писал(а): Скомпелировал в Delphi 1) кого "скомпелировал" ![]() 2) правильно писать скомпилировал 3) приведи коды "скопированного" строки с 10-й по 20-ю |
|||
карма: 9 |
|
Ответов: 5227
Рейтинг: 587
|
|||
Galkov я не исправим
![]() ![]() Скомпилировал тот же пример который выкладывал с поправкой от Alexbootch... |
|||
карма: 4 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Я тоже (с поправкой на имя консоли)
Вопрос остается: Galkov писал(а): что мы делаем не так ![]() |
|||
карма: 9 |
|
Ответов: 2060
Рейтинг: 28
|
|||
andrestudio, попробуй удалить файл hiWinExec.dcu. Может поможет.
![]() |
|||
карма: 1 |
|
Ответов: 5227
Рейтинг: 587
|
|||
коды скопированого hiWinExec строки с 10-й по 20-ю
hProcess: THandle; hPipeInputWrite: THandle; hPipeOutputRead: THandle; hPipeErrorsRead: THandle; hPipeInputRead: THandle; hPipeOutputWrite: THandle; hPipeErrorsWrite: THandle; dwReadThreadID: dword; hReadThread: THandle; FRead: boolean; Эдик hiWinExec.dcu - у меня поиск не нашёл |
|||
карма: 4 |
|
Ответов: 3851
Рейтинг: 159
|
|||
Э, я после замены кода обычно перегружаю хиасм, на всякий случай..
|
|||
карма: 0 |
|
Разработчик
Ответов: 26305
Рейтинг: 2146
|
|||
Андрей. писал(а): Э, я после замены кода обычно перегружаю хиасм, на всякий случай..Ты вот прикинь, что было бы, если бы я после каждой правки кода на лету, перегружал HiAsm ![]() |
|||
карма: 22 |
|
Ответов: 3851
Рейтинг: 159
|
|||
Ну ты сравнил - ты наверное и в откомпилированной проге можешь её исходник править, чтобы сразу результат был виден
![]() Спасибо, буду знать (не помню кто мне насоветовал перегрузы, а может я сам придумал).. |
|||
карма: 0 |
|
Разработчик
Ответов: 26305
Рейтинг: 2146
|
|||
Андрей., перегруз нужен, когда правишь *.ini -- добавляешь точки, меняешь их названия и тп
|
|||
карма: 22 |
|
Ответов: 9906
Рейтинг: 351
|
|||
tsdima, посмотрел я немного теорию, и вот что вижу (не смотря на то, что у меня все работает):
MSDN писал(а): To read from the pipe, use the pipe's read handle in a call to the ReadFile function. The ReadFile call returns when another process has written to the pipe. The ReadFile call can also return if all write handles to the pipe have been closed or if an error occurs before the read operation has been completed.MSDN писал(а): In this case, the parent process must ensure that the child process does not inherit the pipe's write handle. If this is not done, the ReadFile operation performed by the child process cannot return zero because the child process has an open handle to the write end of the pipe |
|||
карма: 9 |
|
Ответов: 2125
Рейтинг: 159
|
|||
Кабы была только одна труба, откуда читать надо, я бы выкинул PeekNamedPipe и проблем меньше было бы. Можно два потока замутить, хотя надобность этого под вопросом.
Выход из цикла по bError=true будет только когда мы хендлы закроем. Вместо пустого event-а для задержки можно hProcess ожидать, чтобы поймать момент, когда процесс сам собой завершится. Надо только потом из трубы дочитать. pi.hThread надо бы конечно сразу отпускать, хотя, после того как мы убьём процесс (или он сам помрёт) pi.hThread уже никого не интересует. |
|||
карма: 1 |
|
Ответов: 9906
Рейтинг: 351
|
|||
tsdima писал(а): pi.hThread уже никого не интересует.Утечка памяти, это тоже такая память, которая никого не интересует ![]() Собственно, такой код: code_8670.txt - просто показывает систематический перерасход всяких там хэндлов (в т.ч. и Thread) Ну и памяти, соответственно... ------------ Дoбавленo: блин... и события выходные не синхронизированы |
|||
карма: 9 |
| ||
файлы: 1 | code_8670.txt [1KB] [340] |
Ответов: 5227
Рейтинг: 587
|
|||
Установил HiAsm v3.65 build168 (предыдущий build167 удалил)
заменил hiWinExec.pas исправленный - tsdima, но результата не достиг (4998 стр) и стоп. Вобщем если консольную прогу скомпилировать в FPC то из неё удаётся получить 5000 строк, но это мою проблему не решает так как я рачитывал использовать стороннию консольную программу Galkov, tsdima, то что у Вас работает сомнений нет (может у Вас коды лучше причёсаны) ![]() |
|||
карма: 4 |
|
Ответов: 70
Рейтинг: 1
|
|||
Написал тут утилитку, которая передает консольному (.cmd) скрипту кодирования видео параметры и запускает выполнение этого скрипта (doConsoleExec) далее результат работы скрипта выводится в BlockFind, чтобы найти там процент выполнения задачи. Ну и соостветственно этот процент передается на прогрессбар утилитки. Через случайное время работы скрипта вылетает Runtime error 216. Консольный скрипт использую уже года три. Он рабочий. Помогите избавиться от ошибки.
code_23143.txt |
|||
карма: 0 |
| ||
файлы: 1 | code_23143.txt [1.6KB] [207] |
Ответов: 356
Рейтинг: 31
|
|||
Попробуй между WinExec и BlockFind вставить Charset.
|
|||
карма: 0 |
|