Win32Platform zwraca 1 na XP'ku : )

0

Witam

Pisałem kiedyś o pewnynm problemie:

http://4programmers.net/Forum/viewtopic.php?id=115368

Oczywiście temat jest dalej nierozwiązany. Otóż dzisiaj zupełnie przypadkowo, rzuciła mi się w oczy pewa rzecz. Mianowicie na tym nieszczęsnym kompie zmienna globalna Win32Platform zdefiniowana w SysUtils zwraca mi wartość 1 (VER_PLATFORM_WIN32_WINDOWS) zamiast 2 (VER_PLATFORM_WIN32_NT). Zgłupiałem.

Ale z drugiej strony być może trafiłem przez przypadek na trop rozwiązania tamtej sprawy. Tylko co dalej ??

Zmienna ta jest ustawiana w procce:

procedure InitPlatformId;
var
OSVersionInfo: TOSVersionInfo;
begin
OSVersionInfo.dwOSVersionInfoSize := SizeOf(OSVersionInfo);
if GetVersionEx(OSVersionInfo) then
with OSVersionInfo do
begin
Win32Platform := dwPlatformId;
Win32MajorVersion := dwMajorVersion;
Win32MinorVersion := dwMinorVersion;
Win32BuildNumber := dwBuildNumber;
Win32CSDVersion := szCSDVersion;
end;
end;

modułu sysutils, która to jest wywoływana w sekcji initialization tego modułu. Jak widać, wartość ustalana jest na podstawie wyniku działania GetVersionEx, a stad droga wiedzie do:

function GetVersionEx; external kernel32 name 'GetVersionExA';

I kończy się moje śledztwo w ślepym punkcie o nazwie kernel32.dll :(

Ta dll'ka jest tylko w c:\windows\system32\ a w zakłdce właściwości jest: 5.1.2600.2180 (xpsp_sp2_rtm.040803-2158) więc wszystko niby jest OK.

Ma ktoś jakieś pomysły ??

1 użytkowników online, w tym zalogowanych: 0, gości: 1