Ошибка GetVersionExW в BDS2006 - PullRequest
1 голос
/ 10 мая 2011

это работает в Delphi 2009, но в TurboDelphi / BDS2006 я получаю ошибку:

[Pascal Error] xxx.pas (117): E2033 Типы фактических и формальных параметров var должны быть идентичны

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

1 Ответ

3 голосов
/ 10 мая 2011

Кажется глючным, но в D2007 (и, таким образом, я думаю, также и в D2006) GetVersionExW требует TOSVersionInfoEx в качестве параметра. В D2009 это равно TOSVersionInfoExW, но ниже D2009 это равно TOSVersionInfoExA. Вы должны идти хорошо, объявив osVerInfo как TOSVersionInfoEx. Это должно скомпилироваться с обеими версиями.

...