代码之家  ›  专栏  ›  技术社区  ›  Vladimir Keleshev

C++或Python(或许其他)在C中为控制台应用程序创建GUI

  •  2
  • Vladimir Keleshev  · 技术社区  · 15 年前

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

    其中一个想法是将控制台应用程序作为子进程调用,并使用stdin和stdout与之通信。我尝试用python子进程模块来实现这一点——但它死锁了(可能是因为我的控制台应用程序一直在运行)。据我所知 http://www.python.org/dev/peps/pep-3145/ 现在不可能将持续运行的控制台应用程序与python子进程模块集成在一起。

    另一个想法(可能更为狭隘)是向这个控制台应用程序项目添加一个表单。但是,当我试着去做的时候,我把项目转换成一个“公共语言运行时支持”的项目,不管它意味着什么,广告形式,一个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了。

    你会推荐什么?

    2 回复  |  直到 15 年前
        1
  •  5
  •   Pete Kirkham    15 年前

    如果您拥有控制台应用程序的代码,那么不要在尝试使用输入和输出流与它进行对话时乱来。将控制台应用程序的逻辑提取到一个库中,并从您选择的图形用户界面调用该库-Windows.Forms from C,python gtk,normal gtk。

        2
  •  1
  •   Dror Helper    15 年前

    vs将应用程序转换为clr类型的原因是因为它意外地认为您要使用winforms,winforms是.NET框架的一部分,而使用winforms的唯一方法是您的项目也是.NET。

    您还有其他选择: 1。添加MFC GUI -本机C++图形用户界面 2。更好的是用一个新的.NET项目创建一个新的.NET项目(c/y/vb.net),并使用p-调用或COM互操作调用C/C++ +DLL。