【问题标题】:Convert GUI C++ app to a console one将 GUI C++ 应用程序转换为控制台之一
【发布时间】:2011-01-27 09:03:41
【问题描述】:

我有一个需要转换为控制台的 GUI C++ 应用程序 (Visual Studio 2008)。 我没有任何 C 编程经验。我主要使用.NET。我从哪里开始?

【问题讨论】:

  • int main(int argc, char *argv[]); 是您的起点。

标签: c++ user-interface console


【解决方案1】:

下转换 GUI 应用程序是一项大手术。编程模型完全不同,GUI 应用程序是事件驱动的。依靠消息循环传递事件,在消息处理程序中处理。通常是一堆控件,负责处理输入的繁琐工作。

鉴于您必须完全重新设计应用程序以使其作为控制台模式应用程序运行,并且您没有使用该语言的经验,因此使用您有经验的 .NET 语言编写此应用程序是获得该语言的最佳方式很快就完成了。

【讨论】:

  • 我试图在调用 CreateDialog 之前执行一个函数,并且应用程序在 crtexe.c 中崩溃,“访问冲突”。如何解决这个问题?
  • 我的水晶球浑浊,看不到“功能”。我只能推荐使用调试器。请阅读:catb.org/~esr/faqs/smart-questions.html
【解决方案2】:

从重构开始。确保 GUI 与业务逻辑分离。然后添加另一个接口来访问这个业务逻辑:一个使用控制台而不是 GUI 小部件的接口。

【讨论】:

    【解决方案3】:

    查看ncursesreadline 以帮助您构建富控制台应用程序。你can't use them both at once,正如我发现的那样,所以如果你的应用程序更面向输出/显示或者将实现单键交互(热键),请尝试 ncurses,如果它更像是一次一行的用户输入,请尝试使用 readline情况。

    【讨论】:

      【解决方案4】:
      1. 使用 main 创建一个新项目
      2. 添加您的文件
      3. 这里有一个控制台应用程序什么都不做。它可能仍会创建窗口,或者如果您愿意,可以创建隐藏窗口。
      4. 现在取决于您的创造力,将界面与现有代码联系起来。
      5. 不要忘记下载并使用 boost::program_options 正确访问命令行参数。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-03-09
        • 1970-01-01
        • 2012-11-06
        • 2014-09-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多