Перенаправить stdout + stderr на проект C # GUI - PullRequest
0 голосов
/ 05 августа 2011

У меня есть неуправляемая dll (C ++), которую я не могу изменить.
Как я могу получить результат STDOUT из этой dll в мой C # GUI проект?например, DLL имеют void как это:

__declspec(dllexport) void PrintMsg();

void PrintMsg()
{
cout << "Some text" << endl ;
}

Я нахожу это решение Перенаправление stdout + stderr на C # Windows службы , но все перенаправленные данные записываются в файл, мне нужно получить stdout безсохранить в выходной файл, лучший вариант получить вывод в переменной.

Если возможно, скажите мне, как.

Спасибо.

1 Ответ

0 голосов
/ 05 августа 2011

Я полагаю, что вы должны иметь возможность вызвать CreateFile () и передать ему уникальное имя для вашего приложения (НЕ ФАЙЛАМ) для создания "устройства". Вам придется сделать это дважды, один для «записи» и один для «чтения», а затем использовать SetStdHandle и перенаправить стандартный вывод на дескриптор «записи». После этого вы сможете использовать дескриптор чтения для чтения всего, что отправлено на стандартный вывод. Я никогда не пробовал этого, так что вам придется искать, как сделать произвольное коммуникационное «устройство».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...