![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| Andy_ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 10.11.2004 Репутация: нет Всего: нет |
Так как раньше я писал только консольные приложения у меня возникла проблема при работе со своими функциями(dll) из GUI(.NET) приложения.
Заключается она в след.: Как в среде .NET отловить stdin поток если происходит вызов функции из dll т.е. этот поток идёт от этой dll. Например есть длл на С: #include "stdafx.h" extern "C" __declspec(dllexport) int Test(); extern "C" __declspec(dllexport) int Test() { fprintf(stdout,"Hello users!\n"); return 1; } Далее я подгружаю её в свою консольную программу на C#: using System; using System.Runtime.InteropServices; namespace LoadLib { class Class1 { [DllImport ("mydll.dll")] public static extern int Test(); static void Main(string[] args) { try { Test(); //Вызываем функц. из длл и получаем stdin на консоль } catch(System.EntryPointNotFoundException e) { Console.WriteLine(e.Message); } } } } В результате получаю на консоль вывод "Hello users!", т.е. всё ок! Вопрос: Как мне поймать этот поток в моём GUI(.NET) приложении и перевести его, например в richTextBox или в MessageBox???? Я рассматривал класс System.IO.Stream, но там что то мне сложно сорентироваться. Заранее огромное пасибо за ответ. |
|||
|
||||
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 22 Всего: 48 |
Думаю стоит покапать в сторону System.Console. Там есть методы SetError, SetIn и SetOut, которые позволяют установить на поток свой System.IO.TextReader или System.IO.TextWriter.
Добавлено @ 03:06 з.ы. в MSDN, кстати, примеры есть в топиках про SetIn, SetOut, ... -------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |