C++ 从DLL写入控制台

C++ 从DLL写入控制台,c++,dll,console,pipe,C++,Dll,Console,Pipe,我有一个程序的DLL,希望能够在命令行中运行该程序,然后通过管道将DLL的输出传输到另一个程序。我该怎么做 我目前可以打开一个新的调试控制台进行打印,但我希望能够通过管道输出,以便运行如下快捷方式: C:\Windows\System32\cmd.exe /K "C:\Program_Using_the_DLL.exe | C:\Program_to_Pipe_To.exe" 这与一些类似的问题(例如:)不同,因为我需要能够通过管道传输输出,所以我需要它到达当前控制台 也许我可以以某种方式使用

我有一个程序的DLL,希望能够在命令行中运行该程序,然后通过管道将DLL的输出传输到另一个程序。我该怎么做

我目前可以打开一个新的调试控制台进行打印,但我希望能够通过管道输出,以便运行如下快捷方式:

C:\Windows\System32\cmd.exe /K "C:\Program_Using_the_DLL.exe | C:\Program_to_Pipe_To.exe"
这与一些类似的问题(例如:)不同,因为我需要能够通过管道传输输出,所以我需要它到达当前控制台

也许我可以以某种方式使用GetStdHandle(),或者是否有某种方式使用AttachConsole(ATTACH\u PARENT\u PROCESS)?任何帮助都将不胜感激!我不熟悉这个细节


(DLL是用C++编写的)

尝试使用函数获取当前输出文件的
句柄

当您将一个程序的输出通过管道传输到另一个程序时,它将不再传输到控制台,因此AttachConsole不会有任何帮助。你需要得到父进程输出的文件句柄,希望它与C++ I/O兼容,我看不出它为什么不能工作。你试着做什么?然后我怎么用那个文件句柄写呢?啊,我的愚蠢伤害了我!正确答案是(当然),调用setstddhandle(STD_OUTPUT_HANDLE,currentConsole);其中currentConsole是GetStdHandle(STD_OUTPUT_HANDLE)返回的内容。因此,概括地说:如果可以,我也会投票,但我还没有足够的声誉!我会试着去回答我自己的一些问题。。。。