为什么Windows API比其他API更不直接?

Nov*_*kov -1 windows winapi api-design

在我看来,Windows API并不像你期望的那样直截了当.对我来说,他们有点复杂的时尚?

这是保持向后兼容性的效果吗?

Microsoft的主要目标是将开发人员推向更高级别的抽象,如ATL/MFC,VB和/或.net吗?

这是我第一次使用Win32 API和类似FindFirstFile的调用让我坚定地相信UNIX哲学,其中API似乎在10%的努力下实现了90%的灵活性.然后再似乎有一些独特的情况需要使用诸如fcntl*nix类型的机器之类的调用,它们是Windows上实际调用的组成部分.

......或者我只是错过了一个基本的范例?

Joh*_*yre 6

要记住以下几点:

  1. 它的设计大约在20年前,主要基于早期版本的Windows,这些版本是在此之前的十年设计的.

  2. 它基于C,因此GetString()函数需要具有类似的设计

    bool GetString( char* stringBuffer, int bufferLen)
    
    Run Code Online (Sandbox Code Playgroud)

    而不是

    char* GetString(void)
    
    Run Code Online (Sandbox Code Playgroud)

    任何其他语言都会有.

  3. 向后兼容性是此API的第1项工作,因为Microsoft拥有的每一行Windows代码都是基于Windows API构建的