我试着用下面的代码片段来调用windows api中的GetProcessAffinityMask。如何从Delphi XE5中调用GetProcessAffinityMask
var
procaffmask,
sysaffmask : DWord;
begin
GetProcessAffinityMask(GetCurrentProcess, procaffmask, sysaffmask);
end;
在汇编我得到以下错误消息......
[dcc32错误] UnitfrmMain.pas(54):的实际和无功正式参数E2033类型必须是相同的
C++的语法API调用低于:
BOOL WINAPI GetProcessAffinityMask(
_In_ HANDLE hProcess,
_Out_ PDWORD_PTR lpProcessAffinityMask,
_Out_ PDWORD_PTR lpSystemAffinityMask
);
所以然后我将DWORD
更改为PDWORD
,但没有解决问题。
有谁能告诉我如何解决这个问题吗?我在互联网上看到了不使用指针的Delphi代码示例。
感谢您的帮助。另外,感谢您对命名约定的解释。我发现我需要增加对数据类型的理解,并且看到Delphi声明也很有帮助。我必须完全匹配类型声明,包括case。 DWord_Ptr不起作用。非常感谢您花时间。帮我。 –
请参见[Windows数据类型](https://msdn.microsoft.com/en-us/library/windows/desktop/aa383751.aspx)。另外,Delphi不是一个区分大小写的语言。 'DWord_Ptr'和'DWORD_PTR'是一样的东西。 –