C++ 控制台+;视窗';形式

C++ 控制台+;视窗';形式,c++,windows,forms,console,C++,Windows,Forms,Console,有winAPI函数(没有类)可以从控制台应用程序创建子窗口。需要在窗口上打印形状的图形,并向控制台输入命令 谢谢。为GUI应用程序创建控制台窗口更简单 我不确定您所说的“女儿”是否是指某个特定的东西,但控制台应用程序当然可以创建一个窗口(或任意多个窗口)。窗口应用程序也可以分配控制台 从窗口程序中分配控制台理论上来说是一项工作,但有一个优点:您可以使用自己选择的应用程序框架(Qt、wxWidgets等)编写大多数窗口“东西” 如果您直接使用WindowsAPI,那么创建控制台应用程序和创建您认为

有winAPI函数(没有类)可以从控制台应用程序创建子窗口。需要在窗口上打印形状的图形,并向控制台输入命令


谢谢。

为GUI应用程序创建控制台窗口更简单

我不确定您所说的“女儿”是否是指某个特定的东西,但控制台应用程序当然可以创建一个窗口(或任意多个窗口)。窗口应用程序也可以分配控制台

从窗口程序中分配控制台理论上来说是一项工作,但有一个优点:您可以使用自己选择的应用程序框架(Qt、wxWidgets等)编写大多数窗口“东西”


如果您直接使用WindowsAPI,那么创建控制台应用程序和创建您认为合适的窗口会更容易一些。在这种情况下,您所要做的就是编写代码,就像您通常编写窗口程序一样,但将输入函数命名为
main
,而不是
WinMain
。基于此,链接器将在可执行文件中自动设置“console”标志,Windows将在启动时为其提供一个控制台。这里的最大优点是C++标准库自动初始化,所以像 CIN < /Cord>之类的工作都不需要额外的努力。如果从窗口程序开始并分配一个控制台,默认的所有工作都是Windows API函数(<代码> RealCurSoelPosivs> />代码,<代码> WordEndoSeSurvie,<代码> Read Frase, RealFeFele>代码>等,您可以得到C和C++函数,但是您必须处理一些文档不完整的领域。(这些都可以在下一版本的编译器中更改)来实现。我通常会避免这种情况,除非我只打算使用Windows API函数来处理控制台。

如果您使用的是Visual Studio,以下是一种更简单的方法,可能对您很有用:


如果是,您可以通过创建表单项目、添加必要的表单,然后更改应用程序类型(通过右键单击项目并选择属性)并将其更改为控制台应用程序来启动表单应用程序。它仍会像您预期的那样生成表单窗口,但也会启动控制台窗口(仍将由cout等填充)“你的评论关于<代码>主< <代码>与<代码> Win MeST /代码>假设微软工具链。例如GNU工具链与这两个工具中的任何一个都很高兴,并且不使用C++ STATUP函数作为子系统的提示。默认情况下,MS工具链就是这样。但是即使使用MS的工具链,也可以使用4毫秒启动函数中的任何一个。通过指定(机器代码级别)入口点,在任何Windows子系统中都可以使用。请不要告诉这里的人,
WinMain
有任何实际用途,除非避免在MS toolchain中键入一些构建命令或项目配置。其余答案都很好,一如既往。:-@Alf:我考虑过,但基于“表单”tag认为MS工具链是一个合理的简化假设。你很可能是对的,我对这个分数的判断不太完美。谢谢你的好意评论。谢谢你的回答。我是这样做的。我如何向蠕虫发送消息以输出图形?我尝试发送消息(Hwnd,WM_DESTROY,0,0)例如,但是什么都不起作用。linked不会根据
WinMain
main
的存在来推断应用程序的类型。在Visual C++中有一个链接器->系统->子系统标志:
Windows
Console
/SubSystem
链接器选项)@Andy t:MS'链接器有一个开关,但它也(尝试)根据存在的
main
WinMain
DllMain
(或
wmain
等)计算开关的值。如果不使用上述任何一项,可以使用开关覆盖该值,或指定子系统。