質問: system.environment.osversion.platform.tostring(); これは「win32nt」を返します。問題は、windows vista 64ビットで実行している場合でも「win32nt」を返すことです。正しいプラットフォーム(32ビットまたは64ビット)を知る他の方法はありますか?windows 64ビットで32ビットアプリケーションとして実行する場合、64ビットも検出する必要があることに注意してください。
回答: 完全な答えは次のとおりです(stefan-mg、ripper234、bobbyshaftoeの両方の回答から取得)。 [dllimport("kernel32.dll", setlasterror = true, callingconvention = callingconvention.winapi)] [return: marshalas(unmanagedtype.bool)] public static extern bool iswow64process([in] intptr hprocess, [out] out bool lpsysteminfo); private bool is64bit() { if (intptr.size == 8 || (intptr.size == 4 && is32bitprocesson64bitprocessor())) { return true; } else { return false; } } private bool is32bitprocesson64bitprocessor() { bool retval; iswow64process(process.getcurrentprocess().handle, out retval); return retval; } 最初に、64ビットプロセスであるかどうかを確認します。そうでない場合は、32ビットプロセスがwow64processであるかどうかを確認してください。