مسائل الترحيل 64-بت ++Visual C الشائعة

عند استخدام Visual C++ لإنشاء تطبيقات للتشغيل على نظام تشغيل 64-بت Windows ، يجب أن تكون حذراً من المشكلات التالية:

  • int و longهى قيم 32-بت على أنظمة تشغيل 64-بت Windows . بالنسبة للبرامج التي تخطط لترجمتها على ‏‫النظم الأساسية الـ 64 بت‬، يجب أن تكون حذراً ألا تقوم بتعيين مؤشرات لمتغيرات 32-بت. المؤشرات تكون 64-بت في الأنظمة الأساسية 64-بت ، و سوف تقوم باقتطاع قيمة المؤشر إذا قمت بالتعيين لمتغير 32-بت.

  • size_t ،time_t ، و ptrdiff_t هي قيم 64 بت على أنظمة تشغيل 64 بتWindows
 .

  • time_tهى قيمة 32 بت على أنظمة تشغيل 32-بت Windows في إصدارات++ Visual C قبلVisual C++ 2005. في إصدارات Visual C++ 2005 و أحدث، time_tهى عدد صحيح 64 بت بشكل افتراضي. للحصول على المزيد من المعلومات, راجع إدارة الوقت.

    يجب أن تكون حذراً من الجهة التى تأخذ التعليمات البرمجية منها قيمة int وتقوم بمعالجتها كقيمة size_t أو time_t . فمن المحتمل أن يكون الرقم قد زاد ليكون أكبر من رقم 32 بت، و البيانات سيتم اقتطاعها عند تمريرها إلى مخزن int ا.

معدّل x% (تنسيق int hex) printf لن يعمل بالشكل المتوقع على نظام التشغيل 64-بت Windows . سوف يعمل فقط على أول 32 بت من القيمة التي تم تمريرها إليه.

  • استخدم I32x% لعرض عدد صحيح على نظام التشغيل 32-بت Windows.

  • استخدم I64x% لعرض عدد صحيح على نظام التشغيل 64-بت Windows.

  • سوف يعمل p% (التنسيق hex للمؤشر) كما هو متوقع على نظام تشغيل 64 بت Windows.

لمزيد من المعلومات، راجع:

راجع أيضًا:

موارد أخرى

برمجة 64-بت باستخدام ++Visual C

‏‫نقل و ترقية البرامج