在哪里找到Windows API的手册页?

3

我在POSIX方面更有经验,目前正在苦于理解Windows API。

我想找到单个入口点来查找文档,但我还没有找到<wincon.h>的文档。我也无法确定有多少标准头文件(C99/C11)可用。

例如,我可以找到winreg.h却找不到wincon.h (错误404)。在RegDeleteKeyA文档中,我可以看到LSTATUS类型,但它没有被记录。

如何浏览此API? 入口在哪里?

我同意我的问题有些不清楚,但我的意思是我正在寻找类似Linux手册的Windows API手册。格式并不重要,我只需要一份手册。

更具体的例子:

  • 我可以在Windows上使用int32_t吗?在哪里记录了这个信息?
  • LSTATUS的定义是什么?
  • 我在哪里可以找到使用winreg读取注册表的示例? ...

在右上方有一个搜索按钮。看起来LSTATUS没有文档记录,但是你可以在Windows头文件中查找它。关于返回值的重要事项是,在你链接的页面下“返回值”下记录了可能的代码,类型并不重要。 - M.M
1
在我的经验中,如果需要的话,在函数名后面加上“winapi”,在谷歌搜索是最快速的“入口点”:)这个问题涉及到LSTATUS,https://dev59.com/pGIk5IYBdhLWcg3wI7EF - M.M
@M.M 我也注意到从搜索框中无法使用“LSTATUS”。我确实可以查看头文件,但我还没有安装Visual Studio:( - nowox
我不确定你在问什么关于C99/C11头文件。那完全是与Windows API无关的。符合C11标准的编译器将配备C11标准头文件等。据我所知,int32_t由主要的编译器提供;它是C11中的可选类型,并且实现定义是否存在,但我预计所有支持WinAPI编程的编译器都会存在。 - M.M
1
Windows API与C标准库完全独立。#include <windows.h>几乎包含了所有API。 - M.M
显示剩余2条评论
2个回答

5
Microsoft平台技术文档的入口是MSDN图书馆。它(相对而言;请参见评论)内容很全面。
“int32_t”不是平台类型,它由C和C++核心语言定义。它可能在MSDN库中某处有记录,但我不会在那里查找(尽管您可以在此处查找Microsoft C++语言扩展)。

它不是由C或C++定义的,而是由ISO/IEC标准定义的,该标准要求有修订日期,因此int32_t是在ISO/IEC 9899:1999中引入的。我找不到Windows符合哪个标准。 - nowox
“它既不是由C也不是由C++定义的” - 是的,它是被ISO/IEC 9899:1999在普通用语中定义的,你试图挑刺但C确实是(被定义的)(C++同理)。你关于Microsoft编译器的语言兼容性的观点是正确的,但这实际上已经在MSDN上有所记录。 - Konrad Rudolph
1
@WeatherVane 公平地说,所有这些结果都是无用的。 - Konrad Rudolph
3
据我所知,MSVC编译器目前并不完全符合C99标准,更不用说C11标准了。微软表示,他们不将C语言支持列为优先级。 - DevSolar
微软的文档有时不完整或过时。在我看来,从文档中获取要点,但在标题中验证细节。 - Eryk Sun
显示剩余4条评论

2

第二个问题:

LSTATUS的定义是什么?

编辑:

Windows头文件WinReg.h有这行代码

Original Answer翻译成"最初的回答"

typedef __success(return==ERROR_SUCCESS) LONG LSTATUS;


Windows数据类型中可以找到Windows类型定义列表。但是,该列表中未列出类型LSTATUS。最接近的是:

LONG

LRESULT

Signed result of message processing.

This type is declared in WinDef.h as follows:

 typedef LONG_PTR LRESULT;

LRESULT在名称上可能最接近,但用法(甚至基本类型)并不相似! - Anders
@Anders,这是因为我最初认为我找到了LSTATUS作为一个文档类型,当我注意到我的错误后,我编辑了答案并搜索了LSTATUS的定义。 - Weather Vane

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接