【问题标题】:C++ or Python (maybe else) to create GUI for console application in CC++ 或 Python(也许是其他)在 C 中为控制台应用程序创建 GUI
【发布时间】:2011-03-07 18:39:49
【问题描述】:

我有一个 Visual C 控制台应用程序(在 VC++2008EE 中创建),我需要向它添加 GUI。

一个想法是将控制台应用程序作为子进程调用,并使用标准输入和标准输出与其通信。我尝试使用 Python 子进程模块来做到这一点 - 但它死锁(可能是因为我的控制台应用程序正在连续运行)。正如我从http://www.python.org/dev/peps/pep-3145/ 了解到的,现在无法将持续运行的控制台应用程序与 python 子进程模块集成。

另一个想法(可能更严格)是向这个控制台应用程序项目添加一个表单。但是当我尝试这样做时,VS 将项目转换为具有“公共语言运行时支持”的项目,无论它意味着什么,广告表单,表单的 cpp 文件 - 它不再编译说:

Command line error D8016 : '/MTd' and '/clr' command-line options are incompatible
error BK1506 : cannot open file '.\Debug\Form_TEST.sbr': No such file or directory

不知道是什么意思。我从未接触过 C++,但我使用过 C 和 Python 一段时间。

你会推荐什么?

【问题讨论】:

    标签: c++ python c user-interface console-application


    【解决方案1】:

    如果您拥有控制台应用程序的代码,请不要胡乱尝试使用输入和输出流与其对话。将控制台应用程序的逻辑提取到库中,然后从您选择的 GUI 中调用该库 - 来自 C#、Python GTK 和普通 GTK 的 Windows.Forms。

    【讨论】:

      【解决方案2】:

      VS 将您的应用程序转换为 CLR 类型的原因是因为它意外地认为您想要使用属于 .NET 框架的 winforms,而使用它们的唯一方法是您的项目也是 .NET。

      您还有其他选择: 1. 添加MFC GUI - 原生C++ GUI 2. 最好使用所需的 GUI 创建一个新的 .NET 项目 (C#/VB.NET),并使用 P-Invoke 或 COM 互操作调用您的 C/C++ dll

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-01-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-07
        • 2016-01-31
        • 1970-01-01
        相关资源
        最近更新 更多