سؤال

لدي مقابل 2008 وأريد أن يعمل طلبي مع Windows 98 دون الحاجة إلى تضمين msvcr90.dll .. يأتي Win98 مع msvcr60 ، فكيف يمكنني إخبار MSVC بالقيام بذلك؟ هل خياري الوحيد للبحث عن Visual Studio 6؟

شكرًا

*أريد أيضًا تجنب ربط MSVCR ثابت

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

المحلول

لا يمكنك إخبار Visual Studio باستخدام إصدار سابق من مكتبة وقت التشغيل. حتى إذا كان بإمكانك تشغيلها مع المكتبة القديمة ، فلن يتم تشغيل التطبيق نفسه بشكل صحيح لأن المترجم سيقوم بإدراج المكالمات إلى الوظائف التي تتوقع أن تكون في المكتبة ، والتي قد لا تكون كذلك.

كما أريد تجنب ربط MSVCR ثابت
لماذا ا؟ هذا يبدو وكأنه حل صالح تماما لهذه المشكلة. من المؤكد أنك تدفع حوالي 100 كيلو بايت في حجم الكود لذلك ، لكن هذا يستحق ذلك أكثر من إجباره على استخدام برنامج التحويل البرمجي المرئي في Visual Studio 6.

يمكنك أيضًا تضمين MSVC ++ إعادة توزيعها والتي ستحتوي على DLLs الصحيحة ولن تتطلب ربطًا ثابتًا للمكتبة القياسية.

نصائح أخرى

إذا كنت ترغب في استهداف Windows 98 ، فإن خياراتك هي:

  • أولاً ، إصدار أقصى من Visual Studio 2005. 2008 وما فوق ختم الحد الأدنى لنظام التشغيل 5.0 في رأس EXE - لن يقوم Windows 98 ببساطة بتحميل الثنائيات التي تنتجها VS 2008.

بالنسبة لتوزيع CRT:

  • قم بتوزيع وقت التشغيل الجديد مع تطبيقك. أفضل هذا النهج إذا كان لدى تطبيقك العديد من DLLs لأن الارتباط الثابت يجعل كل شيء أكبر مما يجب أن يكون. بالإضافة إلى أن هناك الكثير من القيود المفروضة على استخدام C ++ من DLL التي يتم تخفيفها إذا كنت على الأقل مشاركة تنفيذ C-Runtime بين جميع الوحدات النمطية في العملية.

إذا لم تكن مستخدمًا "ثقيلًا" لميزات C ++ مثل الاستثناءات ، و STL ، فقد تتمكن من الابتعاد عن عدم الارتباط في أي CRT على الإطلاق. وإلا فإن خياراتك هي:

  1. استخدم برنامج التحويل البرمجي غير MS مثل Mingw. يستخدم Mingw أحدث GCC حتى تحصل على C99 و C ++ 98 ، C ++ 03 ، TR1 وما إلى ذلك ويستخدم msvcrt.dll. Code :: Blocs عبارة عن IDE "موافق" ، إذا لم تستخدم أبدًا SUTDIO المرئي و/أو أخذت عددًا قليلًا من الضربات إلى الرأس.
  2. قم بتنزيل Windows DDK. ستحتاج إلى البناء من سطر الأوامر ، والتخلي عن ملفات ، ولكنها مجانية ، ويستخدم DDK برنامج التحويل البرمجي VS2005 ، ولكن الإعداد بشكل خاص للربط مع msvcrt.dll ، وليس msvcr80.dll. كان يعتبر محفوفًا بالمخاطر للغاية يتطلبون من برامج تشغيل الأجهزة الارتباط بوقت التشغيل الذي قد لا يكون هناك.
  3. Visual Studio 6 كخيار الاحتياطي النهائي. دعم فظيع فظيع لـ C ++ 98. على الأقل ، تحصل على IDE جميلة ويجب أن تكون سريعة الآن بعد أن تضاعفت أجهزة الكمبيوتر من الناحية النظرية في السرعة/السعة 8 مرات منذ إطلاقها.

ال انخفاض النفقات العامة Microsoft Visual Studio C وقت التشغيل هو وقت تشغيل C قابل للربط بشكل ثابت والذي يستفيد أقصى قدر من DLL المتاح الذي تم توزيعه بالفعل باستخدام Windows.

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