كيف يمكنني معرفة ما إذا كان طلبي يعمل على إلى x86 أو إلى x64 ويندوز؟

StackOverflow https://stackoverflow.com/questions/443227

  •  22-07-2019
  •  | 
  •  

سؤال

وأريد أن أعرف، في وقت التشغيل، سواء أنا على التوالي على ويندوز 32 بت أو 64 بت. هيكل OSVERSIONINFOEX يقول لي النسخة الرئيسية والثانوية، ولكن انا التخمين أنا في حاجة إلى أرقام الإنشاء. أحد يعرف ما هي عليه؟

هل كانت مفيدة؟

المحلول

إذا يتم ترجمة طلبك للحصول على 64 بت، ثم الجواب من السهل: كنت تعمل على ويندوز 64 بت

إذا يتم ترجمة طلبك للحصول على 32 بت، تحتاج إلى استدعاء IsWow64Process . ويتم تصدير هذه الوظيفة فقط على نظام التشغيل Windows XP أو في وقت لاحق. إذا كنت ترغب في دعم الإصدارات السابقة من ويندوز، سوف تحتاج إلى استخدام GetProcAddress إلى الحصول على مؤشر لهذه المهمة.

نصائح أخرى

وعلى افتراض كنت تستخدم C ++، وهناك جيدة جدا الطبقة كشف OS هنا .

ويمكنك الحصول على رقم البنية بالفعل من بنية OSVERSIONINFOEX.

إذا كنت عملية 32 بت وتريد أن تعرف إذا كنت تعمل تحت WOW64 (أي.، نظام تشغيل 64 بت)، والدعوة IsWow64Process(). (يتطلب SP2 XP أو أحدث)

ويمكنني استخدام WMI.

وحدد * من Win32_OperatingSystem

والحصول على الدرجة الأولى، ثم حدد السمة الإصدار. لويندوز إكس بي، فإنها ترجع 2600/05/01.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top