2009-09-18 80 views

回答

6

请参阅this question。您检查%PROCESSOR_ARCHITECTURE%环境变量。

4

感谢本·

从问题的链接,你链接到:msdn blog on how to dectect process bitness

产生如下代码: 打印 “WIN64?:$ ENV {PROCESSOR_ARCHITECTURE} \ n”; print“WIN64?:$ ENV {PROCESSOR_ARCHITEW6432} \ n”;

而下面的输出(XP64 32位的perl)

WIN64?:86

WIN64?:AMD64

看来,如果你正在运行在64位赢得一个32位的应用程序,你将需要引用PROCESSOR_ARCHITEW6432。

1

另一种方法,虽然涉及更多一点,但会检查Windows API函数IsWow64Process。在this question的答案中给出了一个如何做到这一点的例子(在Delphi中)。

0
my @CPUIdentifierArray = split ' ', $ENV{PROCESSOR_IDENTIFIER}; 
    my %ArcHash  = ('x86' => 32, 'AMD64' => 64, 'Intel64' => 64); 
    my $Arch   = $ArcHash{$CPUIdentifierArray[0]}; 

它返回32或64

相关问题