سؤال

أنا مسؤول عن الحفاظ على رمز VB6 القديم ، وواجهت مشكلة مزعجة فيما يتعلق بقفل COM DLL للمشروع. (سوف نسميها مشروعي و myProject.dll)

عندما أقوم بالتحميل مشروعي في IDE VB6 ، أنا قادر على تجميع DLL المتوافق الثنائي الناتج myProject.dll. يمكنني بعد ذلك تشغيل تطبيق الويب الخاص بي (ASP الكلاسيكي) الذي يربط في DLL (أو أي شيء آخر لهذه المسألة).

لذلك ، عندما أحاول إعادة ترجمة COM DLL ، أحصل على خطأ "تم رفض الإذن". ثم أجد نفسي مضطرًا إلى تنفيذ الخطوات التالية حتى يتم فتح DLL:

  1. تحقق من عدم وجود مشاريع تابعة مفتوحة في IDEs VB6 الأخرى
  2. إعادة تدوير IIS
  3. تحقق من أن الملف لا يقرأ فقط (أحيانًا سيكون ذلك إذا قمت بفحصه إلى عنصر تحكم المصدر)
  4. أغلق المشروع وإعادة فتحه.

غالبًا ما تكون هذه هي الخطوة الأخيرة التي تعمل على إصلاح المشكلة ، وتسمح لي بإعادة الترجمة ، مما يعني أن VB6 IDE تقوم بالفعل بإغلاق DLL للمشروع المحمّل!

أوضح لي زميلي أن الأمر يتعلق بالطريقة التي يعمل بها مشروع VB6 بتوافق ثنائي على DLL ، لكنه لم يتمكن من اقتراح حل.

لقد لم تسفر عن عمليات البحث عن مكان آخر في طريق الإجابات. تميل استفسارات البحث المرتبطة بهذا إلى إعادة الكثير من الإجابات غير ذات الصلة (ربما أسأل الشيء الخطأ في محركات البحث).

كان أقرب شيء يمكن أن أجده على Stackoverflow هذا السؤال منذ عامين ، لكنه لا يناسب الفاتورة حقًا.

هل لدى أي شخص أي اقتراحات أخرى قد تخفف هذا؟

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

المحلول

حافظ على نسخة من MyProject.dll اسم الشيئ MyProject.cmp وإعدادات متوافقة مع ثنائية إلى ملف .cmp الخاص بك. بهذه الطريقة لن تحتاج إلى إعادة فتح ملف المشروع (الخطوة 4).

أثناء تسجيل الوصول ، يمكنك وضع علامة استمر في الفحص لتخطي الخطوة 3 أيضا.

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