将std :: cout从p / invoked dll重定向到C#

时间:2016-06-10 19:00:47

标签: c# c++ named-pipes io-redirection

我正在尝试做什么

我想将std::cout重定向到来自P/Invoke的{​​{1}} dll。为此,我使用包裹在流中的命名管道通过C#重定向。

问题

出于某种奇怪的原因,这只能运作一次。第二次调用SetStdHandle时,重定向似乎根本不起作用。那是为什么?

注意:

我知道耗尽流的后台线程中的生命周期问题,我将解决但不是导致此问题的根本原因。

Source.cpp

Do1()

的Program.cs

#pragma once

__declspec(dllexport) void __cdecl main();

#include <iostream>

void main() {
    std::cout << "Test 1" << std::endl;
    std::cout << std::flush;
}

非常感谢你的帮助!

0 个答案:

没有答案