我用C ++编写了一个程序。它只是使用控制台使其尽可能便携。不幸的是,许多Windows用户似乎不明白如何使用该程序(Linux用户很好用:))。所以我想为该程序编写一个GUI。由于这只需要在Windows上运行,我想用C#编写。
但是我希望将GUI与原始程序区分开来。基本上,我需要一种方法将已编译的* .exe包含到另一个程序中。有没有办法从另一个程序捕获控制台输出并向其发送输入?此外,原始程序的控制台是否可以隐藏?
类似问题
答案 0 :(得分:1)
如果您可以将程序提取到C ++库中,然后由C ++控制台程序使用,那将是多么美妙的事情。这种将它与C#集成的方法只需将pInvoke入口点定义到该DLL中,然后就可以直接从GUI应用程序调用代码。
答案 1 :(得分:1)
您可以通过多种方式进行此操作。 System.Diagnostics.Process类有一些方法可以让你访问应用程序的输入和输出,你可以从那里自动化它。
基本上,您可以使用StandardInput和StandardOutput方法获取输出,然后与输入交互以控制应用程序。在问题的“类似问题”中添加的帖子显示了第一部分,标准输出部分。
答案 2 :(得分:0)
尝试查看here
答案 3 :(得分:0)
您可以在C#应用程序中包含一个命令行开关(例如/ g),它将以GUI模式而非控制台运行您的应用程序。您只需在Main函数中评估参数,然后启动一个Win Form,它将接受输入并运行任何算法或只是坚持控制台模式。默认情况下,您的应用程序将运行控制台,反之亦然,如果您选择。
答案 4 :(得分:0)
虽然副本可能涵盖了您想要的内容,但您提出了一个需要回答的具体问题:
我需要一种方法将已编译的* .exe包含到另一个程序中
你真的不能这样做。充其量,您可以创建一个库,因为@Justin Ethier建议您的GUI和命令行工具都依赖于该库。