在哪里可以找到 Delphi Windows API 调用的声明?

Where can I find Delphi Declarations for Windows API calls?

我想看看如何在 Delphi 中调用 Windows API。最近我有一个关于 GetProcessorAffinity 的问题,Delphi 声明作为答案的一部分发布。我想知道如何找到这类信息。

没有名为 GetProcessorAffinity 的函数。可能你的意思是 GetProcessAffinityMask。该函数在 RTL 单元 Winapi.Windows 中声明。此源文件随 Delphi 一起提供。您可以使用 CTRL + 单击导航到任何函数的声明。

如果您使用 GetProcessorAffinity 这样做,那么您将被带到 Winapi.Windows 中的实现。现在,该实现如下所示:

function GetProcessAffinityMask; external kernel32 name 'GetProcessAffinityMask';

这不是很有用,但您正在寻找的信息就在附近。现在您位于包含实现的文件中,您可以找到声明。移至文件顶部并搜索 GetProcessAffinityMask。这将带你到这里:

function GetProcessAffinityMask(hProcess: THandle;
  var lpProcessAffinityMask, lpSystemAffinityMask: DWORD_PTR): BOOL; stdcall;

这就是您需要的信息。

许多 Windows API 函数(但不是全部)都在 Winapi.Windows 中声明。但无论如何,上述过程都会将您带到正确的文件。

另一种有用的技术是在文件内搜索。从 IDE 搜索 菜单 select 在文件中查找 。像这样配置对话框:

请注意,您需要使用适合您的 Delphi 版本的路径。例如,我的示例来自 XE7,版本 15,但您有 XE5,版本 12。

Delphi 默认带有一些 Windows API 在不同的单元中(其中很多在 (WinApi.)Windows 单元中。

可以在 Delphi Jedi Apilib 项目中找到 Windows API headers 的更完整翻译。