MSDN 上的这个页面似乎列出了一堆文件操作,它们的行为或多或少与本示例中使用的三个函数的压缩版本完全相同。这些在 Win32 API 中编写的非标准运行时函数的目的是什么?
它们只是为了与 DOS 兼容吗?如果是这样,那么为什么他们要更新 64 位支持之类的东西呢?
MSDN 上的这个页面似乎列出了一堆文件操作,它们的行为或多或少与本示例中使用的三个函数的压缩版本完全相同。这些在 Win32 API 中编写的非标准运行时函数的目的是什么?
它们只是为了与 DOS 兼容吗?如果是这样,那么为什么他们要更新 64 位支持之类的东西呢?
可能您使用原始 Win32 API 克服的关键问题(也许是唯一的事情)是,在调试版本中,CRT 将为您执行一些验证(查看源代码 - 那里抛出了很多验证断言)。
封装一个 OS API 有什么问题——即使只是非常轻微?
C 运行时函数还将执行诸如 set errno on failure 之类的操作,这是与 Win32 不同的错误机制。
代码也存在于单独的 DLL 中,有一次人们实际上试图编写不使用 CRT 的程序,因为他们不想加载另一个 DLL。
它被称为“历史”——当你制作像 Windows 这样的东西时,你不能丢弃旧功能,因为它会破坏现有程序。
其中一组看起来像“C”函数,一组看起来像“Win32”函数。您可以使用您最喜欢的任何一个。