سؤال

ونحن نستخدم نموذج أتمتة كائن COM لجعل تطبيق المتاحة لدينا لعملائنا.

وانهم يستخدمون بالنسبة للجزء الأكبر الثعبان للوصول لدينا واجهة applicaton على.

وكما نريد أن تكون قادرة على تثبيت (لا تعمل بعد، وهذا موضوع آخر) إصدارات مختلفة من التطبيق، نعمل على تغيير مكونات COM أن يكون لدينا regfree.

ولكن هذا يتعارض مع وصول من لغات البرمجة من خلال الأتمتة IDispatch ونظرا لأنها تحتاج الإدخالات في التسجيل.

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

ما هي البدائل لنهجنا؟

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

المحلول

وهناك بروتوكول ضمن COM للقيام بذلك. إذا كنت نسخة واجهات (وتغيير المعرفات الفريدة العمومية لكل إصدار) يمكنك تثبيت إصدارات متعددة. مايكروسوفت يفعل ذلك مع WORD الخ.

ومن الممكن لإنشاء فئة Word.Document.5 وهو تحديدا إلى الإصدار 5 من المكتبة، أو مجرد word.Document التي سوف إنشاء مثيل من أعلى موجودة على الجهاز. أنا لست متأكدا إذا كان هذا الأداء الوظيفي بناء على COM أو بحاجة إلى impemented لكن الامر يستحق النظر في.

نصائح أخرى

يمكن الوصول إليها من الأشياء

وRegfree COM من خلال مايكروسوفت. Windows.ActCtx الكائن.

وأما بالنسبة لأتمتة IDispatch وتتطلب إدخالات في التسجيل - وهذا غير صحيح تماما. أفترض أنك تستخدم تنفيذ ATL الافتراضي، IDispatchImpl. حللنا هذا الحل من خلال توفير التنفيذ الخاصة بنا، IRegFreeDispatchImpl، والتي تستخدم في سياق التنشيط التلاعب واجهات برمجة التطبيقات في بطريقة اقترح هنا التفاف جميع نقاط الدخول إلى DLL مع سياق تفعيل تفعيل / تعطيل.

وحسنا ويقترح الجواب من قبل نفسك. يمكنك كتابة تطبيق التي لديها قائمة كاملة من كافة إصدارات مكونات COM. وبمجرد اختيار نسخة من قبل المستخدم، يمكنك استدعاء تطبيق regsvr32 تسجيل هذا الإصدار خاص.

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