1

这在 Delphi 2009 中有效,但在 TurboDelphi/BDS2006 中出现错误:

[Pascal 错误] xxx.pas(117): E2033 实际和形式 var 参数的类型必须相同

 ...
  var
     osVerInfo : TOSVersionInfoExW;
     i : Integer;
     begin
        FillChar(osVerInfo, SizeOf(osVerInfo), 0);
        osVerInfo.dwOSVersionInfoSize:=SizeOf(TOSVersionInfoExW) ;
        if GetVersionExW(osVerInfo) then
...
4

1 回答 1

3

似乎有问题,但在 D2007 中(因此我猜也在 D2006 中)GetVersionExW需要TOSVersionInfoEx作为参数。在 D2009 中,这等于TOSVersionInfoExW,但在 D2009 之下,这等于TOSVersionInfoExA。您应该通过声明osVerInfoas来顺利进行TOSVersionInfoEx。这应该与两个版本一起编译。

于 2011-05-10T07:11:57.460 回答