Пока как затычку использую скидывание во временный файл и указание его в параметрах. Коряво, но работает.
alexs, можно подробнее на счет асинхронного процесса? Кстати, в input пишу очень мало данных - явно меньше 4к. Но проблема именно в input, т.к. использование временных файлов решило проблему.
Найдено 14 результатов
- 24.08.2011 23:36:37
- Форум: Lazarus
- Тема: TProcess под Windows и появление консоли
- Ответы: 5
- Просмотры: 3782
- 24.08.2011 14:37:28
- Форум: Lazarus
- Тема: TProcess под Windows и появление консоли
- Ответы: 5
- Просмотры: 3782
Re: TProcess под Windows и появление консоли
Brainenjii писал(а):poUsePipes?
А что с ним не так? Если его убираю, то просто исключение выдается при попытке записать в Input или считать из Output.
- 24.08.2011 14:19:55
- Форум: Lazarus
- Тема: TProcess под Windows и появление консоли
- Ответы: 5
- Просмотры: 3782
TProcess под Windows и появление консоли
Делаю не особо сложный переносимый проект. Создаю в Lazarus под Linux. В проекте есть вот такой код работы с gpg:
proc := TProcess.Create(Self);
if inputText = '' then
proc.Options := proc.Options + [poWaitOnExit, poUsePipes]
else
proc.Options := proc. ...
proc := TProcess.Create(Self);
if inputText = '' then
proc.Options := proc.Options + [poWaitOnExit, poUsePipes]
else
proc.Options := proc. ...
- 22.07.2011 21:25:41
- Форум: Free Pascal Compiler
- Тема: Использование во FreePascal dll для Си
- Ответы: 19
- Просмотры: 12806
Re: Использование во FreePascal dll для Си
Brainenjii писал(а):есть модуль unixtype - тип size_t там точно присутствует
Как я и предполагал, на этом модуле lazarus остановился при компиляции под Windows. Что можно сделать для обеспечения переносимости?
- 19.07.2011 14:39:22
- Форум: Free Pascal Compiler
- Тема: Использование во FreePascal dll для Си
- Ответы: 19
- Просмотры: 12806
Re: Использование во FreePascal dll для Си
Извиняюсь что не привел пример функции. Я делаю юниты для использования библиотеки gpgme (использование GPG) для Free Pascal. Вот с этой функцией у меня и возникли проблемы:
Код: Выделить всё
gpgme_error_t gpgme_data_new_from_filepart (gpgme_data_t *dh, const char *filename, FILE *fp, off_t offset, size_t length)
- 19.07.2011 13:50:18
- Форум: Free Pascal Compiler
- Тема: Использование во FreePascal dll для Си
- Ответы: 19
- Просмотры: 12806
Re: Использование во FreePascal dll для Си
Vadim писал(а):Сишный FILE - это большая и сложная структура, т.е. набор данных, типа RECORD.
А где можно найти описание этой структуры?
- 19.07.2011 12:43:55
- Форум: Free Pascal Compiler
- Тема: Использование во FreePascal dll для Си
- Ответы: 19
- Просмотры: 12806
Re: Использование во FreePascal dll для Си
Ну, с *FILE да - сам е сразу сообразил. А вот как быть с FILE если это не указатель?
- 16.07.2011 19:27:19
- Форум: Free Pascal Compiler
- Тема: Использование во FreePascal dll для Си
- Ответы: 19
- Просмотры: 12806
Re: Использование во FreePascal dll для Си
Brainenjii писал(а):есть модуль unixtype - тип size_t там точно присутствует
А его использование не повредит переносимости программы? Я ее планирую и для Linux и для Windows компилировать.
- 16.07.2011 12:02:39
- Форум: Free Pascal Compiler
- Тема: Использование во FreePascal dll для Си
- Ответы: 19
- Просмотры: 12806
Re: Использование во FreePascal dll для Си
Возникла проблема перевода некоторых типов с Си на Pascal.
Например, есть функция Си с аргументом типа *FILE.
Еще не уверен на счет того как можно перевести типа size_t и off_t.
Например, есть функция Си с аргументом типа *FILE.
Еще не уверен на счет того как можно перевести типа size_t и off_t.
- 13.07.2011 14:06:58
- Форум: Free Pascal Compiler
- Тема: Использование во FreePascal dll для Си
- Ответы: 19
- Просмотры: 12806
Re: Использование во FreePascal dll для Си
h2pas попробовал - падает в процессе. 
Добавлено спустя 14 часов 46 минут 21 секунду:
В общем, все получилось. h2pas использовал переводя файл кусками. Всем спасибо!
Добавлено спустя 14 часов 46 минут 21 секунду:
В общем, все получилось. h2pas использовал переводя файл кусками. Всем спасибо!
- 12.07.2011 20:58:33
- Форум: Free Pascal Compiler
- Тема: Использование во FreePascal dll для Си
- Ответы: 19
- Просмотры: 12806
Re: Использование во FreePascal dll для Си
С синтаксисом знаком, но оооочень давно не использовал. Так что придется все восстанавливать. Спасибо за помощь.
Строки на Си приведены просто копированием из файла заголовка.
Строки на Си приведены просто копированием из файла заголовка.
- 12.07.2011 20:36:27
- Форум: Free Pascal Compiler
- Тема: Использование во FreePascal dll для Си
- Ответы: 19
- Просмотры: 12806
Re: Использование во FreePascal dll для Си
typedef CK_VOID_PTR CK_PTR CK_VOID_PTR_PTR;
Приведите описание функции в которой используются данные типы.
int C_Initialize(CK_VOID_PTR);
Это примерно, т.к. в файле заголовков функции объявляются через кучу макросов.
Как лучше оформить все эти описания функций и типов? В виде юнита? Его ...
- 12.07.2011 19:59:54
- Форум: Free Pascal Compiler
- Тема: Использование во FreePascal dll для Си
- Ответы: 19
- Просмотры: 12806
Re: Использование во FreePascal dll для Си
О! Спасибо!
На счет конкретных... Вот, например, как мне сделать аналогичное объявление своего типа по аналогии вот с этим:
typedef void CK_PTR CK_VOID_PTR;
typedef CK_VOID_PTR CK_PTR CK_VOID_PTR_PTR;
Добавлено спустя 14 минут 57 секунд:
И еще вопрос в догонку...
Как лучше оформить все эти ...
На счет конкретных... Вот, например, как мне сделать аналогичное объявление своего типа по аналогии вот с этим:
typedef void CK_PTR CK_VOID_PTR;
typedef CK_VOID_PTR CK_PTR CK_VOID_PTR_PTR;
Добавлено спустя 14 минут 57 секунд:
И еще вопрос в догонку...
Как лучше оформить все эти ...
- 12.07.2011 19:13:10
- Форум: Free Pascal Compiler
- Тема: Использование во FreePascal dll для Си
- Ответы: 19
- Просмотры: 12806
Использование во FreePascal dll для Си
Лет 10 назад имел хорошую практику на Delphi, но уже давно не практиковал. Так что заранее извиняюсь за возможные глупые вопросы.
Проблема такая... Есть готовая библиотека (dll, so), которую мне нужно использовать в своей программе. Но она изначально написана для использования в Си. Все декларации ...
Проблема такая... Есть готовая библиотека (dll, so), которую мне нужно использовать в своей программе. Но она изначально написана для использования в Си. Все декларации ...
