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

Mar*_*els 0 delphi winapi delphi-xe5

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

Dav*_*nan 5

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

如果您这样做,GetProcessorAffinity那么您将被用于实施Winapi.Windows.现在,该实现看起来像这样:

function GetProcessAffinityMask; external kernel32 name 'GetProcessAffinityMask';
Run Code Online (Sandbox Code Playgroud)

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

function GetProcessAffinityMask(hProcess: THandle;
  var lpProcessAffinityMask, lpSystemAffinityMask: DWORD_PTR): BOOL; stdcall;
Run Code Online (Sandbox Code Playgroud)

这是您需要的信息.

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

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

在此输入图像描述

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