从 DLL 写入控制台
我有一个程序的 DLL,并且希望能够在命令行中运行该程序,然后将 DLL 的输出通过管道传输到另一个程序。我该怎么做?
我当前可以打开一个新的调试控制台进行打印,但我希望能够通过管道传输输出,以便我可以运行如下快捷方式:
C:\Windows\System32\cmd.exe /K "C:\Program_Using_the_DLL.exe | C:\Program_to_Pipe_To.exe"
这与一些类似的问题不同(即:这个),因为我需要能够通过管道传输输出,所以我需要它到达当前控制台。
也许我可以以某种方式使用 GetStdHandle(),或者是否有某种方式使用 AttachConsole(ATTACH_PARENT_PROCESS)?任何帮助将不胜感激!我对这个细节部分很陌生。
(DLL是用C++编写的)
I have a DLL for a program, and want to be able to run that program in a command line, and then pipe the output of my DLL to another program. How do I do this?
I can currently opening a new debug console to print to, but I want to be able to pipe the output so that I can run a shortcut like:
C:\Windows\System32\cmd.exe /K "C:\Program_Using_the_DLL.exe | C:\Program_to_Pipe_To.exe"
This is different from some similar questions (IE: this one) in that I need to be able to pipe the output, so I need it to come to the current console.
Perhaps I can use GetStdHandle() somehow, or is there someway of using AttachConsole(ATTACH_PARENT_PROCESS)? Any help would be appreciated! I'm new to this nitty-gritty part.
(DLL is written in C++)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
尝试使用函数
GetStdHandle(STD_OUTPUT_HANDLE)
获取当前输出文件的HANDLE
。Try using the function
GetStdHandle(STD_OUTPUT_HANDLE)
to get aHANDLE
to the current output file.