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

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

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

时间:原作者:0个回答

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,从底层创建应用。
  • 控制台应用程序没有任何图形界面。仅 命令行 窗口用于数据输入和结果输出。
原作者:
...