c++ - C++,WIN32 应用程序和 Windows 窗体应用程序和控制台应用程序之间的区别?

  显示原文与译文双语对照的内容
135 4

我想知道 Windows 表单应用程序和win32application分析控制台之间的区别,了解 Windows 窗体应用程序和 WIN32 应用程序,我知道在other应用程序and应用程序,但是我想把控制台应用程序转换为 Windows 窗体应用程序?

时间: 原作者:

133 1

Windows 表单引用. NET 应用程序。 它不是直接基于原生 Windows API,而是基于. NET 基础结构。 它包括一个虚拟机。

WIN32 一般指的是 32位 Windows API 。 但是,_WIN32 宏是为 32位 和 64位 编程定义的。 作为 Visual Studio 项目类型,它包括GUI和控制台子系统api级别程序。

在可执行文件头中的Windows 子系统是一个小整数值,它告诉 Windows 该程序需要什么样的服务。 这个值可以通过微软程序 比如 dumpbin的比如 来检查 dumpbin c:windowsnotepad.exe/headers | find"ubs" 在 Windows 9x 中,dumpbin 输出通过文件预览功能可用,但该特性已经停止。

Windows 中的每个进程都可以与一个进程关联,最多可以与一个控制台窗口关联。

收费的GUI子系统意味着 Windows 不会,试图用一个关联的控制台窗口来配置每个实例。 这个进程可以创建一个控制台窗口本身。 通常这个子系统用于具有图形用户界面( 所以"")的普通程序,并且大多数连接器被指定为"Windows"。

如果需要对每个实例进行配置,那么控制台意味着 Windows 将尝试使用关联的控制台窗口来配置每个实例,如果需要。

注意

  • 同样的源代码可以作为控制台或者GUI子系统来构建。 这是很容易做到的。 只需更改子系统规范。

  • 控制台子系统可执行文件一样,GUI子系统可执行文件具有标准流。

  • 一个控制台子系统可以执行文件可以提供图形用户界面,就像一个 GUI 。

也要注意

  • 微软默认不接受 C++ 子系统构建的标准 main 。 然而,这种不一致的行为很容易修复。 仅在链接器选项中指定 /entry:mainCRTStartup

GNU工具没有这样的问题,即 G++ 。

103 4
  • 使用 Windows 。DELPHI或者MFC等图形编程接口框架的应用程序是应用程序,而不是直接调用 WIN32 API,而不是直接调用 API 。
  • 另一方面,收费的应用程序通常直接处理 Windows api,从底层创建应用。
  • 控制台应用程序没有任何图形界面。 仅 命令行 窗口用于数据输入和结果输出。
...