one - visual c++ redistributable for visual studio all versions




بناء ويندوز نت 4.0 باستخدام فيسوال ستوديو 2005؟ (4)

تطبيق مفك الذي أحاول ترحيل يستخدم afxext.h الذي يسبب _AFXDLL الحصول على تعيين الذي يسبب هذا الخطأ إذا قمت بتعيين /MT :

الرجاء استخدام التبديل / مد ل _AFXDLL يبني

تشير أبحاثي حتى الآن إلى أنه من المستحيل بناء تطبيق للتنفيذ على ويندوز نت 4.0 باستخدام فيسوال ستوديو (C ++، في هذه الحالة) 2005.

هل هذا صحيح حقا؟ هل هناك أي حل بديل متاح؟


لا، هناك العديد من التطبيقات التي بنيت مع VS2005 التي لديها لدعم ويندوز زب، 2000، نت، كومة كاملة. المسألة هي أن (افتراضيا) VS2005 يريد استخدام المكتبات / الصادرات غير موجودة على نت.

راجع مؤشر الترابط هذا لبعض الخلفية.

ثم بدء تحديد التبعيات الخاصة بك عن طريق وحدات الماكرو بريبرويسور وتجنب واجهات برمجة التطبيقات التي لا يتم دعمها على نت.


للتخلص من الخطأ _AFXDLL، هل حاولت تغيير الإعدادات لاستخدام مفك ك ليب ثابت بدلا من دل؟ هذا يشبه ما تقوم به بالفعل في تغيير ليبس وقت التشغيل إلى ثابت بدلا من دل.


والفكرة هي أن هناك حاجة إلى إكس لربط مكتبة ثابتة.

يرجى محاولة هذا "خصائص التكوين"، "عام"، "استخدام مفك" إلى "استخدام مفك في مكتبة ثابتة" "خصائص التكوين"، "عام"، "استخدام أتل" إلى "ارتباط ثابت إلى أتل"

"خصائص التكوين" و "C \ C ++" و "إنشاء التعليمات البرمجية" و "مكتبة وقت التشغيل" إلى "موضوع مترابطة (\ مت)"

اختبار منصة بناء الجهاز: فيسوال ستوديو 2005 على ويندوز زب SP2 العميل الجهاز: ويندوز زب SP2 (لا تثبيت VS2005)


الحل البديل هو إصلاح دل متعددة الخيوط. تعليمات بسيطة . ملخص قصير:

لا يدعم دل الشحن مكتبة وقت التشغيل C C (MSVCR80.DLL) نت 4.0 SP6 لسبب واحد وسبب واحد فقط: شخص ما في ميكروسوفت إضافة استدعاء دالة إلى GetLongPathNameW غير موجود في kernel32.dll على نت 4.0.

CRTLIB.C على الخط 577، هناك دعوة إلى GetLongPathNameW . ببساطة استبداله ب: ret = 0; فقط استخدام هذا بناء MSVCR80.DLL على نت 4.0.

مرة واحدة كنت قد حصلت على تلك العمل، والخروج مع حل أكثر عمومية يجب أن يكون تافها.





windows-nt