.net 重定向stdout+;C#GUI项目上的stderr

.net 重定向stdout+;C#GUI项目上的stderr,.net,c++,dll,.net,C++,Dll,我有一个无法更改的非托管dll(C++)。 如何将标准输出的结果从这个dll传输到我的C#GUI项目中? 例如,DLL的void如下所示: __declspec(dllexport) void PrintMsg(); void PrintMsg() { cout << "Some text" << endl ; } uu declspec(dllexport)void PrintMsg(); void PrintMsg() { cout我相信您应该能够调用并传递应用程

我有一个无法更改的非托管dll(C++)。
如何将标准输出的结果从这个dll传输到我的C#GUI项目中? 例如,DLL的void如下所示:

__declspec(dllexport) void PrintMsg();

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

cout我相信您应该能够调用并传递应用程序特有的名称(而不是文件名)来创建“设备”。实际上,您必须执行两次,一次用于“写入”,一次用于“读取”,然后使用stdout并将其重定向到“写入”句柄。然后您应该能够使用“读取”句柄读取所有发送到STDUT的文件。我从未尝试过,所以你必须准确地查找如何制作任意的通信“设备”。< /P>这与C++和VB.NET有什么关系?抱歉,我对这个解决方案非常满意,但只工作了一次,没有回答为什么:(塞思,我有一个用于管理股票流和NETOK的主流程序的非托管DLL,但是删除那些不必要的标签,比如VB.NET和C++,因为你的非托管DLL写的是什么语言,或者VB.NET,这不是真的。NET.Seth,谢谢你的评论,我把问题改成了更正确的。删除一些标记。是的,你说得对,我需要将标准输出从dll重定向到我的.NET程序。