我想将所有控制台输出重定向到我自己的GUI控制台,包括对C写入函数的所有调用。
我尝试过的事情:
我是否需要更深入地了解C绑定?任何帮助非常感谢。
答案 0 :(得分:3)
许多地方都解释了这个问题的典型解决方案。这是一篇旧文章,解释了如何在Windows上执行此操作:http://edn.embarcadero.com/article/10387
它在任何UNIX上的工作方式都相同。
简而言之:
更简单的第二种方法是在运行某个子进程时简单地使用popen()
函数。这个标准功能在上述情况下做得更多/更少。
答案 1 :(得分:2)
我选择了另一条路径并编写了自己的writeln函数。由于我使用的库中没有一个直接输出终端输出,所以它似乎不像管道或文件那么麻烦。
答案 2 :(得分:1)
一种简单但非常简单的方法是使用C的freopen()将stdout重定向到临时文件,然后读取控制台中的文件。
您可以将它在操作系统级别重定向到管道,然后让您的控制台侦听管道的另一端。那更干净,但更痛苦。
无论哪种方式,我认为D库不会有太多帮助 - 你会想要使用某种C库解决方案。