gpt4 book ai didi

c++ - 用MFC写的Windows程序是C++程序?

转载 作者:可可西里 更新时间:2023-11-01 10:09:41 25 4
gpt4 key购买 nike

我读过的每本 C++ 书籍都是这样说的:-

  1. 所有 C++ 程序都有一个 main() 函数。
  2. main() 函数是所有 C++ 程序的起点。
  3. 所有 C++ 程序都从 main() 函数开始执行。

但是,我发现使用MFC 编写的Windows 程序没有任何main() 函数。它使用 WinMain() 函数作为程序起点。

那我能说用MFC写的Windows程序不是C++程序吗?那么,它是一个什么样的程序呢?

谢谢。

最佳答案

这个问题的答案比是或否要复杂一些。这在很大程度上取决于您对“C++ 程序”的定义有多严格。使用 MSVC 构建的 Windows 子系统程序通常不会有 main 函数。 MFC 是一种用于构建 Windows 子系统程序(至少在当代实践中)的 C++ 语言框架。出于“使用 C++ 编译器编写的没有 main 函数的程序是否为 C++ 程序,如果不是,它是什么?” MFC 无关紧要。

main 函数,可以根据“独立”和“托管”实现来讨论。标准只要求“托管”实现以 main 作为入口点。也就是说,您很难直截了本地称微软对 CRT 和该语言的实现是“独立的”。

因此我们可以使问题更具体“MFC 应用程序是符合标准的托管 C++ 程序吗?”答案是“技术上,非常技术上,不。”

回复:独立与托管:

任何普通的 C++ 用户土地应用程序通常都将被托管,这将受益于标准库等。阿尔。独立场景的示例可能在嵌入式系统或操作系统内核中。例如,在编写操作系统内核时,您不能依赖 malloc 或 new 等功能的存在,因为您正在实现最终将用于实现 malloc 和 new 等功能的服务(虚拟内存、进程等)。

关于c++ - 用MFC写的Windows程序是C++程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3030970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com