sar*_*ara 7 c++ windows console-application win32gui
我想知道windows表单应用程序,win32application和控制台之间有什么区别,我知道windows表单应用程序和win32应用程序都是gui工具,但我想知道何时使用一个而不是另一个,我可以转换控制台应用程序到Windows窗体应用?
Che*_*Alf 11
Windows窗体是指.NET应用程序.它不是直接基于本机Windows API,而是基于.NET基础结构.其中包括虚拟机.
Win32通常是指32位Windows API.但是,_WIN32宏定义为32位和64位编程.作为Visual Studio项目类型,它包括GUI和控制台子系统API级程序.
一个的Windows子系统是在可执行文件的头一个小的整数值,告诉Windows什么样的这个程序需要的服务.可以通过例如Microsoft的dumpbin程序检查该值,例如dumpbin c:\windows\notepad.exe /headers | find "ubs".在Windows 9x中,dumpbin输出可通过文件预览功能获得,但该功能已停止使用.
Windows中的每个进程都可以与一个,最多一个控制台窗口相关联.
GUI子系统意味着Windows 不会尝试使用关联的控制台窗口装备每个实例.但是,该过程本身可以创建控制台窗口.通常这个子系统用于具有图形用户界面的普通程序(因此,"GUI"),并且对于大多数链接器,它被指定为"窗口".
控制台子系统意味着Windows将尝试使用关联的控制台窗口装备每个实例,并在必要时创建一个新窗口.
注意
可以将相同的源代码构建为控制台或GUI子系统.这非常容易.只需更改子系统规范即可.
GUI子系统可执行文件具有标准流,就像控制台子系统可执行文件一样.
控制台子系统可执行文件可以呈现图形用户界面,就像GUI一样.
另请注意
main用于GUI子系统构建的标准C++ .但是,这种不符合要求的行为很容易解决.只需/entry:mainCRTStartup在链接器选项中指定.GNU工具没有这样的问题,即g ++.
“Windows 窗体应用程序”是 GUI .NET 应用程序。
“win32 应用程序”是本机 Windows GUI 应用程序。
“控制台应用程序”是没有 GUI 的本机应用程序。
我不太明白你所说的将一种应用程序“转换”为另一种应用程序的确切含义。但。如果您正在谈论使用某种 IDE 并将一个项目转换为另一个项目:是的,这是可能的。主要区别在于您将应用程序链接到的 .DLL。例如,您可以将作为“console”打开的项目配置为“win32”。这并不容易,但仍然是可能的。如果您想知道您安装的给定现有应用程序是否可以转换,则不:不。