若有資料指向 C:\windows\system32\, 但在 x64 運行下, 程式內路徑卻是要變成 C:\windows\Sysnative, 但在 window 的目錄仍舊是我們所看見的 C:\windows\system32. 因此程式需要判斷是否運行在 x64 系統. 方法如下
function IsRunX64: Boolean; type TIsWow64Process = function(Handle:THandle; var IsWow64 : BOOL) : BOOL; stdcall; var hKernel32 : Integer; IsWow64Process : TIsWow64Process; IsWow64 : BOOL; begin Result := False; hKernel32 := LoadLibrary('kernel32.dll'); if (hKernel32 = 0) then RaiseLastOSError; @IsWow64Process := GetProcAddress(hkernel32, 'IsWow64Process'); if Assigned(IsWow64Process) then begin IsWow64 := False; if (IsWow64Process(GetCurrentProcess, IsWow64)) then Result := IsWow64; else RaiseLastOSError; end; FreeLibrary(hKernel32); end;