在c# GUI项目上重定向标准输出+标准错误
Redirect stdout+stderr on a C# GUI project
我有一个无法更改的非托管dll (c++)。
我怎么能得到STDOUT的结果从这个dll到我的c# GUI项目?例如,DLL中有这样的void:
__declspec(dllexport) void PrintMsg();
void PrintMsg()
{
cout << "Some text" << endl ;
}
我发现这个解决方案在c# Windows服务上重定向stdout+stderr,但所有重定向数据写入文件,我需要接收stdout而不保存到输出文件,最好的选择是在变量中获得输出。
如果可能的话,告诉我怎么做。
谢谢。
我相信你应该能够调用CreateFile()并将它传递给你的应用程序唯一的名称(不是FILENAME)来创建一个"设备"。实际上,你必须做两次,一次用于"写",一次用于"读",然后使用SetStdHandle并将stdout重定向到"写"句柄。然后,您应该能够使用"reading"句柄读取发送到stdout的所有内容。我从来没有尝试过,所以你必须查找如何制作任意通信"设备"。
相关文章:
- 捕获标准输出以压缩并使用 CTRL-C 中断会给出损坏的 zip 文件
- 使用提升过程获取 shell 命令的标准输出
- 将标准输出重定向到ostream
- 如何在C++中执行命令并获取命令的返回代码标准输出和标准
- 在程序执行期间从标准输出重定向到自定义流
- 标准输出C++意外行为
- 防止 qDebug() 写入标准输出
- C++ - <<运算符重载,链表 - 地址而不是标准输出
- 有没有办法知道C++中将打印到标准输出的大小?
- 最后推迟标准输出
- 得到~对标准输出没有回应~在黑客排名问题上
- Win32 GUI C(++) 应用将标准输出和标准输出重定向到磁盘上的同一文件
- 在标准输出中执行打印会导致数组中随机分配值
- 捕获远程进程子进程的标准输出
- 使用 QProcess 读取标准输出
- 如何将值发送到标准输出流并在另一个程序中访问这些值
- 无法使用创建进程重定向标准输出
- 如何使用BOOST_LOG_TRIVIAL宏将任何内容记录到标准输出/标准和文件
- 在c# GUI项目上重定向标准输出+标准错误
- 如何从分离的QProcess中读取标准输出/标准错误