zoukankan      html  css  js  c++  java
  • 判断是否是64位操作系统

    在看一个外国佬的代码的时候,看到一个API函数,然后随手查了查MSDN,原来是新加的用来判断是否是Win64位系统的,于是写了一个函数用来判断是否是64位操作系统:


    代码
     1 function IsWin64: Boolean;  
     2 var  
     3    Kernel32Handle: THandle;  
     4    IsWow64Process: function(Handle: Windows.THandle; var Res: Windows.BOOL): Windows.BOOL; stdcall;  
     5    GetNativeSystemInfo: procedure(var lpSystemInfo: TSystemInfo); stdcall;  
     6    isWoW64: Bool;  
     7    SystemInfo: TSystemInfo;  
     8 const  
     9    PROCESSOR_ARCHITECTURE_AMD64 = 9;  
    10    PROCESSOR_ARCHITECTURE_IA64 = 6;  
    11 begin  
    12   Kernel32Handle := GetModuleHandle('KERNEL32.DLL');  
    13   if Kernel32Handle = 0 then  
    14     Kernel32Handle := LoadLibrary('KERNEL32.DLL');  
    15   if Kernel32Handle <> 0 then  
    16   begin  
    17     IsWOW64Process := GetProcAddress(Kernel32Handle,'IsWow64Process');  
    18     GetNativeSystemInfo := GetProcAddress(Kernel32Handle,'GetNativeSystemInfo');  
    19     if Assigned(IsWow64Process) then  
    20     begin  
    21       IsWow64Process(GetCurrentProcess,isWoW64);  
    22       Result := isWoW64 and Assigned(GetNativeSystemInfo);  
    23       if Result then  
    24       begin  
    25         GetNativeSystemInfo(SystemInfo);  
    26         Result := (SystemInfo.wProcessorArchitecture = PROCESSOR_ARCHITECTURE_AMD64) or  
    27                   (SystemInfo.wProcessorArchitecture = PROCESSOR_ARCHITECTURE_IA64);  
    28       end;  
    29     end  
    30     else Result := False;  
    31   end  
    32   else Result := False;  
    33 end;  


    需要注意是GetNativeSystemInfo 函数从Windows XP 开始才有, 而 IsWow64Process 函数从 Windows XP with SP2 以及 Windows Server 2003 with SP1 开始才有。 所以使用该函数的时候最好用GetProcAddress

  • 相关阅读:
    三种解决IE版本兼容性问题
    CSS 如何让超链接访问后和访问前的颜色不同且访问后仍保留hover和active效果
    bootstrap 笔记用法
    STL优缺点
    输出最大回文数
    将一组单词逆序输出
    排序算法
    背包问题
    二进制
    sstream
  • 原文地址:https://www.cnblogs.com/DxSoft/p/1637656.html
Copyright © 2011-2022 走看看