استفاده از IntPtr
این نوع برای نگهداری اشاره گرها در دات نت مورد استفاده قرار می گیرد. از اونجایی که اندازه اشاره گرها در سیستم ها 64 بیتی از سیستم ها 32 بیتی متفاوت است می توانیم از این روش برای تشخیص 64 بیتی بودن سیستم استفاده کنیم. در صورتی که سیستم 64 بیتی اندازه IntPtr برابر 8 و در سیستم ها 32 بیتی برابر 4 خواهد بود.
توضیح اضافه اینکه این روش کاملا مطمئن است و حتی بر روی Mono و در سایر سیستم عاملها مانند لینوکس و Mac نیز به درستی کار خواهد کرد.
کد #C
if(IntPtr.Size == 8)
{
}
else if(IntPtr.Size == 4)
{
}
کد VB.NET
If IntPtr.Size = 8 Then
ElseIf IntPtr.Size = 4 Then
End If
سایر روش ها
روش دیگر بررسی وجود شاخه ProgramFiles(x86) هست که فقط در ویندوز ها 64 بیتی وجود دارد و محل قرار گیری برنامه های 32 بیتی هست. این روش توصیه نمی شود ولی با این حال قابل استفاده است.
public bool Is64bitOS
{
get { return (Environment.GetEnvironmentVariable("ProgramFiles(x86)") != null); }
}
public string ProgramFilesX86
{
get
{
string programFiles = Environment.GetEnvironmentVariable("ProgramFiles(x86)");
if (programFiles == null)
{
programFiles = Environment.GetEnvironmentVariable("ProgramFiles");
}
return programFiles;
}
}
مقدار Is64bitOS این بررسی را برای ما انجام داده و مشخص می کند.
روش دیگری که مطمئن است استفاده از تابع سیستم GetNativeSystemInfo هست که جزو توابع API ویندوز هست که با توجه به این که نیاز به استفاده از PInvode دارد زیاد توصیه نمی شود. اطلاعات بیشتر را در اینجا مطالعه کنید.