用DELPHI7 编写一个显示器相关程序时遇到以下问题:
C++函数原型
_BOOL GetCapabilitiesStringLength(
[in] HANDLE hMonitor,
[out] LPDWORD pdwCapabilitiesStringLengthInCharacters
);
?%ra=link
我将此函数转换成Delphi如下
function GetCapabilitiesStringLength(hPhysicalMonitor: THandle; out pdwCapabilitiesStringLengthInCharacters: DWORD): BOOL; external 'Dxva2.dll';
一直无法返回True
C++
_BOOL CapabilitiesRequestAndCapabilitiesReply(
[in] HANDLE hMonitor,
[out] LPSTR pszASCIICapabilitiesString,
[in] DWORD dwCapabilitiesStringLengthInCharacters
);
https://docs.microsoft.com/zh-tw/windows/win32/api/lowlevelmonitorconfigurationapi/nf-lowlevelmonitorconfigurationapi-capabilitiesrequestandcapabilitiesreply
?%ra=link
我将此函数转换成delhpi
function CapabilitiesRequestAndCapabilitiesReply(const hMonitor: THandle; var pszASCIICapabilitiesString: PAnsiChar; const dwCapabilitiesStringLengthInCharacters: DWORD): BOOL; external 'Dxva2.dll';
由于上一个函数反法正确返回,所以这个函数也没法确定转换是否有问题
完整代码
有没有?
确认下句柄使用条件和参数。
你好,请参考这些信息,如有帮助,请采纳!
需要满足如下条件。
要求 值
最低受支持的客户端
Windows[仅适用于 Vista 桌面应用]
最低受支持的服务器
Windows[仅限 Server 2008 桌面应用]
NTSTATUS WINAPI DDCCIGetCapabilitiesStringLength(
_In_ HANDLE hMonitor,
_Out_ DWORD *pdwLength
);
参数
hMonitor [中]
物理监视器的句柄。
pdwLength [弄]
接收功能字符串的长度(以字符为限),包括终止 null 字符。
返回值
如果该方法成功,它将返回 状态 " _ 成功"。 否则,它将返回一个 NTSTATUS 错误代码。
备注
应用程序应调用 GetCapabilitiesStringLength 而不是调用此函数。
此函数没有关联的导入库。 若要调用此函数,必须使用 LoadLibrary 和 GetProcAddress 函数动态链接到 Gdi32.dll。
补充一下相应的截图以及代码重新格式化提交一下看看