3

32 ビットの perl であっても、Perl スクリプトが 64 ビットの Windows マシンで実行されていることを検出するにはどうすればよいですか?

4

5 に答える 5

6

この質問を参照してください。%PROCESSOR_ARCHITECTURE%環境変数を確認します。

于 2009-09-18T18:18:01.117 に答える
4

ありがとうベン・S。

リンク先の質問のリンクから: プロセスのビット数を検出する方法に関する msdn ブログ

次のコードが得られました: print "WIN64?: $ENV{PROCESSOR_ARCHITECTURE} \n"; print "WIN64?: $ENV{PROCESSOR_ARCHITEW6432} \n";

そして、次の出力 (xp64 上の 32 ビット perl)

WIN64?: x86

WIN64?: AMD64

64 ビット版で 32 ビット アプリを実行している場合は、PROCESSOR_ARCHITEW6432 を参照する必要があるようです。

于 2009-09-18T20:32:07.217 に答える
3
if (($ENV{'PROCESSOR_ARCHITECTURE'} eq "AMD64") or
    ($ENV{'PROCESSOR_ARCHITEW6432'} eq "AMD64")) {
   $arch = "win64";
} else {
   $arch = "win32";
}

参照: http://blogs.msdn.com/b/david.wang/archive/2006/03/26/howto-detect-process-bitness.aspx

于 2011-01-20T17:52:40.850 に答える
1

もう 1 つの方法は、もう少し複雑ですが、Windows API 関数を確認することIsWow64Processです。(Delphi で)これを行う方法の例は、この質問への回答に記載されています。

于 2009-09-21T23:10:15.733 に答える