如何在 Delphi 中编写 PHYSICAL_MONITOR 数组?

问题描述 投票:0回答:1

我正在尝试让 Delphi 与 WinAPI 函数对话

GetPhysicalMonitorsFromHMONITOR()

如何设置所需的数据结构?

目前,我有:

  LPPHYSICAL_MONITOR = record
    hPhysicalMonitor: THandle;
    szPhysicalMonitorDescription: array [0..127] of WideChar;
  end;
  PLPPHYSICAL_MONITOR = ^LPPHYSICAL_MONITOR;

但是,该函数需要一个数组——当我取消引用指针结构以获得第一个、第二个……监视器时,我需要一个数组。

这就是我对函数本身的了解:

function GetPhysicalMonitorsFromHMONITOR(hMonitor: HMONITOR;
   dwPhysicalMonitorArraySize: DWORD;
   pPhysicalMonitorArray: PLPPHYSICAL_MONITOR): Boolean;
   stdcall; external 'Dxva2.dll' Name 'GetPhysicalMonitorsFromHMONITOR';
delphi winapi
1个回答
0
投票

根据您链接到的相同文档:

要获取所需的数组大小,请调用

GetNumberOfPhysicalMonitorsFromHMONITOR

因此,获取数组大小,然后分配数组,然后将数组传递给

GetPhysicalMonitorsFromHMONITOR()
。您链接到的同一文档甚至提供了一个示例(用 C 语言编写,可以轻松翻译为 Delphi)。

© www.soinside.com 2019 - 2024. All rights reserved.