0

我有一个简单的 C++ 控制台应用程序,想知道是否有任何方法可以添加 GUI 而无需重新制作应用程序。

我正在使用 MinGW 编译器、Eclipse CDT IDE 以及标准库和 boost 库。

4

3 回答 3

0

您应该详细说明您的问题,以获得更准确的答案。

您的控制台应用程序提供的交互级别是多少?

- 这就像一个带有输入参数的简单命令,在程序结束时产生输出

在这种情况下,您可以编写一个 gui 前端,该前端将从表单或任何您需要的参数中获取参数,然后您的 gui 应用程序将启动控制台命令,解析结果并将其显示在 gui 中。

- 控制台应用程序非常具有交互性(在所有执行过程中从用户那里获取输入)

  • 控制台应用程序代码非常大并且与控制台交互非常耦合:

也许您可以编写一个带有 std::in 和 std::out 的 gui 包装器,并在 gui 小部件中呈现这两个流,但这可能会很棘手。这不是一个非常令人愉快的解决方案,只有当您真的不想进入控制台应用程序代码时才应该使用它。

  • 控制台应用程序代码不是那么大,或者很容易将控制台输入/输出部分与程序的其余部分分开:

在这种情况下,您应该从您的应用程序中创建一个库,然后为它编写一个 gui。

于 2013-03-04T20:20:10.230 回答
0

(在不了解控制台应用程序的情况下)

您将不得不重新制作应用程序。

如果控制台应用程序“制作精良”,用户交互与实际功能代码脱节,那么它应该是一个简单的转换。

只需创建适当的 UI 并调用必要的函数。

例如,如果您的控制台应用程序包含一个文本菜单并询问答案,那么您将在 GUI 中有按钮和/或菜单和/或编辑框,您需要修补代码。

最大限度。

于 2013-03-04T18:19:50.590 回答
0

如果您不想重写应用程序,您可以尝试使用分离的引擎和接口模式,其中 GUI 和控制台应用程序是单独的可执行文件,其中 GUI 生成控制台应用程序的实例并与其通信以通过某种机制驱动应用程序,例如标准输入

如果您的控制台应用程序不能以这种方式驱动,您不需要更改/重写应用程序

于 2013-03-04T18:22:48.097 回答