سؤال

يا إلهي ، هذا غريب جدًا ، لا أعرف ماذا أقول. الإصدار القصير هو أن لدي تطبيق محاكاة أفرزها من طلبي عندما يطلب مني المستخدم. توقفت مؤخرًا عن العمل ، على الرغم من أنه يمكنني تشغيل Simulator بشكل جيد من سطر الأوامر أو قائمة بدء التشغيل. قد يكون هذا بسبب الانتقال إلى VS2010 أو Windows 7 أو أي شيء لم ألاحظه مراجعة Diffs التحكم في المصدر.

لدي محاكاة ثانية أحاول تفرخها بنفس الطريقة وهي تعمل بشكل جيد.

بشكل افتراضي ، أنا أستخدم Wrapper QPROCESS من QT3 حول المعالجة CreateProcess لهذا الغرض ، لكنني أحصل على نفس السلوك باستخدام System و CreateProcess و Shellexecute.

يوفر لي Shellexecute من cmd.exe "/C Params" بعض المعلومات. أحصل على الحوار

"لا يمكن أن يبدأ البرنامج لأن msvcr80.dll مفقود من جهاز الكمبيوتر الخاص بك. حاول إعادة تثبيت البرنامج لإصلاح هذه المشكلة."

بشكل غير مريح ، يستخدم كل من التطبيق الأصل ومحاكاة الثانية msvcr80.dll.

عند نسخ msvc*80.dll من g: windows winsxs x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4927_none_d08a205e442d5b5 إلى نفس المبدأ القابل للتنفيذ.

"خطا وقت التشغيل!
البرنامج: g: path to app.exe
R6034
قام التطبيق بمحاولة لتحميل مكتبة وقت التشغيل C بشكل غير صحيح.
يرجى الاتصال بفريق دعم التطبيقات للحصول على مزيد من المعلومات.

تليها

لم يتمكن التطبيق من البدء بشكل صحيح (0xC0000142). انقر فوق "موافق" لإغلاق التطبيق.

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


تحديث:

لقد اشتبهت في أنها كانت ذات صلة بالبيئة ، لذا غيرت آلية Shellexecute الخاصة بي للقيام ببراميل App && CMD /C. لقد قمت بإعداد cmd.exe مع تلك المعايير نفسها وتطبيقي الآن يتعطل بشكل مشابه. سيتم التحديث عندما أعرف لماذا :)

إنها أداة وقت تشغيل مكون MATLAB هي التي تعدل متغير مسار العملية إلى التأثير السيئ. إنها تعبّر عن ديرها المليء بـ DLL's و Conslreak Havoc.

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

المحلول

قامت أداة أحمق كنت أستخدمها باستخدام Setenv على المسار ، وقام بإعداد دليل يريده لتحميل بعض DLLs ديناميكيًا ، ولكنه أفسد طلبي لاحقًا. انتهى بي الأمر باستخدام getEnvironmentStrings كما هو موضح في المثال الأخير هنا, ، محو الإدخال الأول في المسار Env var ، وإرسال البيئة (الأصلية) الجديدة إلى QPROCESS ، التي تلتف CreateProcessa.

نصائح أخرى

تحتاج إلى تثبيت CRT

هذه مايو العمل - إذا انهار ، فستحصل على كلتا القطعتين :-)

حاول تثبيت VC ++ قابل للتوزيع من هنا - http://www.microsoft.com/downloads/en/details.aspx؟familyid=A5C84275-3b97-4ab7-a40d-3802b2af5fc2&displaylang=en.

تذكر أن تقوم بإجراء نسخ احتياطي لنظامك ، قم بإنشاء نقطة استعادة وما إلى ذلك قبل تثبيت الأشياء.

فكرة أخرى -جرب إعادة تثبيت التطبيقية الفاشلة نفسها. قد يأتي مع نسخته الخاصة من إعادة توزيع VC ++ ، وقد يساعد إعادة التثبيت. esp. قد تكون محاولة إعادة تثبيته باستخدام وضع إمكانية توصيل Windows 7 (ربما العودة إلى توافق Vista أو XP) أكثر فاعلية.

للتكرار - سيتعين عليك المحاولة ، وليس لدي فكرة حقيقية إذا كان أي من الأفكار المذكورة أعلاه ستعمل جيدًا ، أو حتى التأكد من عدم إلحاق أي ضرر. ومع ذلك ، إذا واجهت مشكلة مماثلة ، فهذه هي الخطوات التي أحاولها. هول!

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