diff --git a/rtl/win/dos.pp b/rtl/win/dos.pp index 5c5d0b0a61..0f6f184ea3 100644 --- a/rtl/win/dos.pp +++ b/rtl/win/dos.pp @@ -94,7 +94,6 @@ type end; var - versioninfo : OSVERSIONINFO; kernel32dll : THandle; {****************************************************************************** @@ -817,41 +816,17 @@ begin end; -function FreeLibrary(hLibModule : THandle) : longbool; - stdcall; external 'kernel32' name 'FreeLibrary'; +function GetModuleHandle(p : PChar) : PtrUInt; + stdcall; external 'kernel32' name 'GetModuleHandleA'; function GetVersionEx(var VersionInformation:OSVERSIONINFO) : longbool; stdcall; external 'kernel32' name 'GetVersionExA'; -function LoadLibrary(lpLibFileName : pchar):THandle; - stdcall; external 'kernel32' name 'LoadLibraryA'; function GetProcAddress(hModule : THandle;lpProcName : pchar) : pointer; stdcall; external 'kernel32' name 'GetProcAddress'; -var - oldexitproc : pointer; - -procedure dosexitproc; - - begin - exitproc:=oldexitproc; - if kernel32dll<>0 then - FreeLibrary(kernel32dll); - end; begin - oldexitproc:=exitproc; - exitproc:=@dosexitproc; - versioninfo.dwOSVersionInfoSize:=sizeof(versioninfo); - GetVersionEx(versioninfo); - kernel32dll:=0; GetDiskFreeSpaceEx:=nil; -{$ifndef win64} - if ((versioninfo.dwPlatformId=VER_PLATFORM_WIN32_WINDOWS) and - (versioninfo.dwBuildNUmber>=1000)) or - (versioninfo.dwPlatformId=VER_PLATFORM_WIN32_NT) then -{$endif win64} - begin - kernel32dll:=LoadLibrary('kernel32'); - if kernel32dll<>0 then - GetDiskFreeSpaceEx:=TGetDiskFreeSpaceEx(GetProcAddress(kernel32dll,'GetDiskFreeSpaceExA')); - end; + kernel32dll:=GetModuleHandle('kernel32'); + if kernel32dll<>0 then + GetDiskFreeSpaceEx:=TGetDiskFreeSpaceEx(GetProcAddress(kernel32dll,'GetDiskFreeSpaceExA')); end.