这在 Delphi 2009 中有效,但在 TurboDelphi/BDS2006 中我收到错误:
[Pascal Error] xxx.pas(117): E2033 Types of actual and formal var parameters must be identical
...
var
osVerInfo : TOSVersionInfoExW;
i : Integer;
begin
FillChar(osVerInfo, SizeOf(osVerInfo), 0);
osVerInfo.dwOSVersionInfoSize:=SizeOf(TOSVersionInfoExW) ;
if GetVersionExW(osVerInfo) then
...
最佳答案
似乎有问题,但在 D2007 中(因此我猜在 D2006 中也是如此)GetVersionExW
需要 TOSVersionInfoEx
作为参数。在 D2009 中,这等于 TOSVersionInfoExW
,但在 D2009 以下,这等于 TOSVersionInfoExA
。您应该将 osVerInfo
声明为 TOSVersionInfoEx
来顺利进行。这应该可以与两个版本一起编译。
关于delphi - BDS2006 中的 GetVersionExW 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5946333/