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 ??