我有一个无法管理的dll(C ++),我无法改变 如何从这个dll到我的C#GUI项目获得STDOUT的结果? 例如DLL有这样的空格:
__declspec(dllexport) void PrintMsg();
void PrintMsg()
{
cout << "Some text" << endl ;
}
我找到了这个解决方案Redirect stdout+stderr on a C# Windows service,但是所有重定向数据都写入文件,我需要在没有保存到输出文件的情况下重新读取stdout,最好的选项是在变量中输出。
如果可能,请告诉我如何。
感谢。
答案 0 :(得分:0)
我相信您应该可以致电CreateFile()并为其申请一个独特的名称(不是文件名)来创建“设备”。实际上你必须做两次,一次用于“写入”,一次用于“阅读”,然后使用SetStdHandle并将stdout重定向到“写入”句柄。然后,您应该能够使用“读取”句柄读取发送到stdout的所有内容。我从来没有试过这个,所以你必须要查找如何制作任意通信“设备”。