User interface 将GUI集成到控制台应用程序中 我有两个C++开发的独立控制台应用程序。我被要求为他们两个开发一个GUI。在这个GUI中,我收集了启动这些应用程序所需的一些参数。任何人都可以介绍如何将控制台应用程序与此GUI集成?是否可以从GUI启动应用程序而不查看控制台?应用程序在控制台中写入的内容是否可以重定向到日志文件
提前谢谢。看一看。可以使用不同的实现,并将链接到GUI库 Expect设计用于与CLI接口并与之交互(输入输出、读取输出)。根据选择的实现(有Perl/Java/Python和原始的Tcl),您可以使用相应的GUI工具包(例如Swing to Java)。从GUI开始: 1)尝试提取控制台应用程序中纯逻辑的部分,这些部分与在屏幕上显示内容无关。扔掉控制台内显示数据的部件 例如,您可以使用GUI工具包,它非常易于设置和使用User interface 将GUI集成到控制台应用程序中 我有两个C++开发的独立控制台应用程序。我被要求为他们两个开发一个GUI。在这个GUI中,我收集了启动这些应用程序所需的一些参数。任何人都可以介绍如何将控制台应用程序与此GUI集成?是否可以从GUI启动应用程序而不查看控制台?应用程序在控制台中写入的内容是否可以重定向到日志文件,user-interface,visual-c++,console,integration,User Interface,Visual C++,Console,Integration,提前谢谢。看一看。可以使用不同的实现,并将链接到GUI库 Expect设计用于与CLI接口并与之交互(输入输出、读取输出)。根据选择的实现(有Perl/Java/Python和原始的Tcl),您可以使用相应的GUI工具包(例如Swing to Java)。从GUI开始: 1)尝试提取控制台应用程序中纯逻辑的部分,这些部分与在屏幕上显示内容无关。扔掉控制台内显示数据的部件 例如,您可以使用GUI工具包,它非常易于设置和使用 然后 2)如果希望应用程序将内容写入日志文件,则可以执行两项操作: a)
然后 2)如果希望应用程序将内容写入日志文件,则可以执行两项操作: a)使用将标准输出重定向到文件的参数启动程序,例如:
./MyProgram > logfile.txt
b)只需打开一个文件并通过修改打印代码从应用程序中写入即可
我希望这能有所帮助。我想你有两个明确的选择:
第二个选项通常更简单、更简洁,但如果控制台应用程序参数语法发生变化,则可能会“不同步”。要将GUI与命令行工具分离,您的GUI调用提供适当参数的现有程序 您可以使用API函数。该调用接收一个结构,您可以在其中指定是否显示该命令的窗口 查看链接中的示例,可以找到完整的创建流程示例 这是纯Windows API的工作方式 如果你正在进行C++/.NET开发,那么通过它,事情就容易多了 如果你可以选择任何一种语言来实现它,我当然会选择.NET方式(甚至将语言更改为C#),这几乎是微不足道的(因为它自己管理所有API调用,并且你有一个健全的接口) 您也可以通过shell重定向输出,但这相当不灵活,而且容易出错。请看一看,它是专门为将脚本修改为命令行C程序而设计的,并且有一个C API,可以非常简单地执行此操作。 作为奖励,您还可以获得程序的脚本功能。它有几种支持这种集成的方式:
- 将Tcl解释器链接到程序中。有一个简单的API可以将Tcl数据结构转换为
typeargv
结构。这使您可以调用程序并按原样使用命令行参数char**
- 将管道生成到C/C++程序,并通过管道与之交互
- 使用Tcl脚本中的命令参数生成程序
- 其他更复杂的RPC构造(但您可能不需要这些)
深入讨论如何使用Tcl/Tk来完成您所询问的事情。应该不是问题。尽管该页面涉及Unix/X11,但不同的平台可以使用不同的实现。e、 g.Java变体显然是独立于平台的。我将尝试从我开发的gui调用应用程序,但我还将了解Expect如何工作,以防其他解决方案无法正常工作。再次感谢!非常有用。。。我没想过“>”这件事。其中一个应用程序是我写的,可以很容易地提取逻辑部分,但另一个是一个非常大和修改的应用程序。。。这可能很棘手。。。谢谢流重定向非常方便,有三种标准重定向: