مشكلة C ++ / CLI DLL على نظام التشغيل Windows 7 بدون تثبيت VS2008

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

سؤال

حسنا، إليك غرابة لهذا اليوم.
أقوم بإنشاء ملحقات لبرنامج C ++ موجود لا يمكنني الوصول إليه إلى التعليمات البرمجية المصدر.

أكتب DLLS القياسية C / C ++ DLL وأستعب IJW للاتصال C # DLLs. أنا لم أفعل هذا في لحظة، ولكن الآن أحاول الحصول على واحدة للعمل في النافذة 7. أحصل على خطأ (خطأ 0000036b1 - غير متأكد من ذلك إذا كان هذا رقم خطأ داخلي للتطبيق، أو خطأ في Windows. < / ص>

لدي أجهزة كمبيوتر افتراضية متعددة (XP و Windows 7) يعمل DLL على ما يرام على XP. يعمل أيضا على نظام التشغيل Windows 7 إذا تم تثبيت Visual Studio 2008. ولكن ليس على Windows 7 نظيفة مع حزمة إعادة توزيع حزمة Microsoft Visual C ++ 2008 المزود بحزمة الخدمة SP1.

يمكنني ترجمة وتشغيل DLLs C ++ مستقيم على مربع نظيف Windows 7 طالما تم تعيين مفتاح التحويل البرمجي على MT [D] ولكن إذا قمت بتعيين مفتاح / CLR، يجب أن أغير ذلك إلى MD [D] ثم فشل في صندوق Windows 7 نظيف. ولكن ليس على مربع Windows 7 مع تثبيت Visual Studio 2008.

أي أفكار حول ما أحتاج إلى تثبيته في المربع النظيف؟ (بخلاف VS بالطبع ؛-))

شكرا لمساعدتكم.

l. لي سوندرز

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

المحلول

حسنا هذا أمر سيء.وأشار شخص ما إلى أن الملفات التي احتاجتها هي إصدارات التصحيح وهذا يعني أنني قمت بتجميع DLL الخاص بي في وضع التصحيح.اقترح أن أحاول وضع الإصدار.

لذلك، مع نسخة جديدة من جهاز الكمبيوتر الظاهري الخاص بي قيد التشغيل Windows 7 Basic (هذا المحدبة 3.5 C ++ المثبتة) قمت بنسخه عبر DLL الأصلي (واحد في وضع التصحيح) فقط للتحقق من أن جهاز الكمبيوتر الظاهري هذا كان لديه المشكلة.نعم فعلت.

ثم نسخت عبر DLL التي تم تجميعها في وضع الإصدار.انها عملت.

حسنا، أريد رسميا قص رأسي على الحائط.

شكرا على وقتك.

l.لي سوندرز

نصائح أخرى

ستحتاج إلى إعادة توزيع كل من وقت التشغيل VC ++ (الذي يحتوي على رمز دعم ل C ++) و .NET Framework 3.5 (الذي يحتوي على رمز دعم ل C ++ / CLI).

يجب أن يأتي

.NET 3.5 مع Win7، لكن VS2008 SP1 يأتي مع .NET 3.5 المزود بحزمة الخدمة SP1 لذلك أود أن أوصي بتثبيت جميع التحديثات .NET من Windows Update.

الآن أشعر بالسوء.لم يكن التثبيت نظيف تماما من Windows 7. أحتاج إلى تثبيت التطبيق الذي أكتب ملحقاته.أن أحدث البرامج تم تثبيت أحدث البرامج حزمة إعادة توزيع Visual C ++ 2008 SP1.

حسنا، قررت أن أجرب إنشاء مشروع تثبيت من القليل من Bitty C ++ CLI DLL وأخبره أنه يشمل التداول.سحبها في 2 ملفات:

c: \ program files \ files common \ merge modules \ microsoft_vc90_debugcrt_x86.msm c: \ program files \ files common files \ morgge modules \ policy_9_0_microsoft_vc90_debugcrt_x86.msm

ركضت التثبيت وعمل التطبيق الصغير.لقد نسخت يدويا عبر DLLs و Lo واذا عملوا الآن.لذلك للحصول عليه للعمل كنت بحاجة إلى هاتين الملفين.

لماذا؟ولماذا لم يتم تضمينهم في حزمة Redist؟

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