Форум: "Основная";
Текущий архив: 2004.07.04;
Скачать: [xml.tar.bz2];
ВнизКак перехватить вывод в stdin из функции загруженной из DLL Найти похожие ветки
← →
mmb (2004-06-15 15:30) [0]Из загруженной с помощью
LoadLibrary
вызывается функция, в процессе работы которой в стандартный вывод выводится неопределённое число строк. Как бы их перехватить и по окончании работы отобразить в (напримерTMemo
).
← →
VMcL © (2004-06-16 19:15) [1]CreatePipe() + SetStdHandle(), если не ошибаюсь.
← →
mmb (2004-06-17 12:08) [2]А где вызывать
CreatePipe, SetStdHandle
: в библиотеке или в загружающей программе?
← →
PVOzerski © (2004-06-17 12:32) [3]>А где вызывать CreatePipe, SetStdHandle: в библиотеке или в загружающей программе?
Я, вообще-то, подумал, что исходники библиотеки недоступны - иначе зачем так изощряться?
← →
evvcom © (2004-06-17 13:40) [4]
> mmb (15.06.04 15:30)
По-моему, твоя ветка была по поводу передачи нескольких строк из dll в основное приложение со всей универсальностью (чтобы и в С и в Фортране работало)? Так чем тогда мой ответ не понравился? Или не смог из Фортрана HeapAlloc вызвать? А это гораздо проще, чем stdin перехватывать (или все же stdout?)
← →
mmb (2004-06-17 16:55) [5]
> [4] evvcom © (17.06.04 13:40)HeapAlloc
из Фортрана можно найти, как вызвать, но оказалось, что в коде этих модулей масса вызововprintf
ов иput
ов и мне показалось проще перехватить всю их выдачу. Что бы поменьше перерабатывать кода :)
> [3] PVOzerski © (17.06.04 12:32)
Коды как раз доступны, но хотелось бы см. выше
← →
evvcom © (2004-06-17 17:13) [6]
> Что бы поменьше перерабатывать кода
Я бы всю эту билиберду собрал в какой-нибудь стринг, а потом print этот стринг и в функцию этот стринг. А с перехватом будет гораздо больше переработки.
← →
mmb (2004-06-17 17:33) [7]
> [6] evvcom © (17.06.04 17:13)
Так ведь в Фортране это не так просто, да и Си тоже, а код хотелось бы поменьше трогать
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.07.04;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.037 c