كيف يمكنني حل "خطأ وقت التشغيل" 429 ": لا يمكن لمكون ActiveX إنشاء كائن"؟

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

سؤال

لدى شركتي تطبيق VB6 باستخدام Crystal Reports 7 الذي طلب من العميل تثبيته على Windows 7 32 بت. يتم تثبيته حاليًا على أجهزة Windows XP 32bit SP2 في العميل. يتم الاتصال بـ DB عبر مثيل ODBC إلى SQL Server 2000 على خادم آخر.

في Windows 7 ، يعمل التثبيت بشكل جيد ، ولكن عند محاولة فتح التطبيق ، يتم تقديم الخطأ.

لقد نظرت إلى ما يلي:

  • تسجيل جميع ملفات DLL و OCX باستخدام REGSVR32. لن يسجل البعض لأنها إما مسجلة بالفعل أو يتم إعطاء الرسالة التالية "تأكد من أن" [name] .dll "هو ملف DLL أو OCX صالح ثم حاول مرة أخرى." قرأت موضوع المنتدى هذا بخصوص هذا: http://social.msdn.microsoft.com/forums/en-us/vblanguage/thread/0653f685-4526-45d9-89f3-8c479a6b4c62
  • راقب فتح التطبيق باستخدام تطبيق ProcessMonitor لمحاولة اكتشافه إذا كان هناك ملف DLL أو OCX مفقود - لا يبدو أن هذا هو الحال.
  • استعرض التطبيق وفقا ل هذه القائمة ولا شيء يبدو أنه ضد هذه الإرشادات

لقد لاحظت عنصرين في قاعدة المعرفة التي تتعلق بهذا

  • http://support.microsoft.com/kb/281848 - comdlg32.ocx المجمعة مع التطبيق هو الإصدار 6.0.81.69 والآخر في مجلد System32 على جهاز Dev (Winxp 32 بت) هو 6.1.97.82. ومع ذلك ، إذا كانت هذه هي المشكلة ، فمن المؤكد أنها لن تعمل حاليًا؟
  • http://support.microsoft.com/kb/184898 - لست متأكدًا من كيفية تأكيد أن هذه هي المشكلة

أخيرًا ، بسبب التعقيدات ، لا يُسمح لي بإجراء تغييرات رمز على هذا التطبيق. حتى لو كنت كذلك ، فأنا لست مبرمجًا VB6 ، فقط الرجل الذي حصل على مشروع الدعم الرهيب! إذا كانت هناك حاجة إلى تغييرات الكود ، فسوف يتعين علي التحقيق باستخدام وضع WinXP.

تحديث: أحصل على نفس الخطأ في وضع XP. هذا هو Win XP مع SP3 VM. هذا يعمل على Win XP SP2 VM ، هل من المحتمل أن يكون هناك شيء في SP3 كان من شأنه أن يتسبب في حدوث ذلك؟ أم أنها مجرد حقيقة كونها وضع XP؟

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

المحلول 2

ملف msrdo20.dll مفقود من التثبيت.

بالنسبة الى بيان الدعم لـ Visual Basic 6.0 على Windows Vista و Windows Server 2008 و Windows 7 يجب توزيع هذا الملف مع التطبيق.

لست متأكدًا من السبب في ذلك ، لكن حلي هو وضع الملف في مكان ما على الجهاز ، وتسجيله باستخدام REGSVR32 في سطر الأوامر ، على سبيل المثال:

regsvr32 c:\windows\system32\msrdo20.dll

في عالم مثالي ، ستقوم بتعبئة هذا مع إعادة التوزيع.

نصائح أخرى

لقد حصلت على نفس الخطأ ولكني حللت باستخدام REGSVR32.EXE في C: Windows syswow64. لأننا نستخدم نظام X64. لذا ، إذا كان جهازك أيضًا X64 ، فيجب تسجيل OCX/DLL أيضًا مع إصدار REGSVR32 X64

تم إصلاح هذا التنزيل الذي تم إصلاحه في وقت التشغيل VB6 Exe و Access 2016 (باستخدام Acedao.dll).

http://www.microsoft.com/en-ca/download/details.aspx؟id=13255

اقتباس من الرابط: "سيقوم هذا التنزيل بتثبيت مجموعة من المكونات التي يمكن استخدامها لتسهيل نقل البيانات بين ملفات نظام Microsoft Office 2010 وتطبيقات Office غير الميكروسوفت"

أنت تقول إنه يعمل بمجرد تثبيت VB6 IDE ، لذا من المحتمل أن تكون المشكلة هي أن المكونات التي تحاول استخدامها تعتمد على وقت تشغيل VB6 الذي يتم تثبيته.

لم يتم تثبيت وقت تشغيل VB6 على Windows افتراضيًا.

يعد تثبيت IDE طريقة واحدة للحصول على وقت التشغيل. بالنسبة للآلات غير التطورية ، يجب استخدام حزمة تثبيت "قابلة للتوزيع" من Microsoft بدلاً من ذلك.

هنا مثبت وقت تشغيل VB6 واحد من Microsoft. لست متأكدًا مما إذا كان هذا هو الإصدار المناسب لمكوناتك:

http://www.microsoft.com/downloads/en/details.aspx؟familyid=7b9ba261-7a9c-43e7-9117-f67307ffb3c

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