سؤال

ولقد ولدت كائن ATL COM باستخدام VS2008 ورمز يحتوي على مراجع إلى تعريف دعا _MERGE_PROXYSTUB (لأنني اخترت الخيار 'دمج وكيل / كعب "عندما ركضت في البداية المعالج).

ما هي الفائدة من وكيل / كعب؟ لو لم تقم بتحديد الخيار دمج ثم أحصل على MyControlPS.DLL منفصلة بدلا من ذلك -؟ متى هذا من أي وقت مضى أن تستخدم

وFWIW يبدو أن السيطرة على التسجيل وتعمل بشكل جيد إذا قمت بإزالة كافة التعليمات البرمجية محاطة يحدد _MERGE_PROXYSTUB. وبناء التصحيح حتى لا يعرف _MERGE_PROXYSTUB وأنه لا يزال يعمل موافق.

وهكذا، يمكنني القيام به من دون وكيل / كعب؟

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

المحلول

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

وعلى سبيل المثال، لدينا المكونات في أن يحصل على تحميلها بواسطة تطبيق يستخدم طراز مؤشر ترابط معين (لا يمكن أن تذكر أي)، ولكن كائن COM لدينا هو شقة مؤشرات (MTA) - لذلك يطلب من الوكيل / كعب لمارشال البيانات بين الكائنات عندما يتم استدعاء دالة، في حين لا يزال التمسك بقواعد طراز مؤشر الترابط.

إذا تم كسر هذه القواعد، ثم COM إما بطرح استثناء أو إرجاع HRESULT فشل مثل <م> RPC_E_WRONG_THREAD

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

وهكذا يمكنك القيام به دون وكيل / بذرة إذا كان التطبيق استدعاء كائن COM يستخدم نفس طراز مؤشر الترابط وجوه الخاص بك

لاري اوستيرمان يوفر مقدمة للقراءة إلى نماذج خيوط على بلوق.

نصائح أخرى

وأيضا، إذا الواجهات الخاصة بك تحتوي فقط اكتب-صديقة للمكتبة أنواع (BSTR، VARIANT، الخ) وتظهر في كتلة مكتبة IDL الخاص بك، يمكنك أن تختار أن يكون لهم "مكتبة نوع تنظيمها" معنى أن تقدم نظام يستخدم وكيل / كعب والبيانات الفوقية من مكتبة نوع.

وعندما يتم وضع واجهات داخل كتلة المكتبة، ويتم تخصيص نجح dllregisterserver تسجيل مكتبة نوع (تمرير TRUE إلى XxxModule :: نجح dllregisterserver، إذا لم تخني) سيتم تنظيمها واجهات من قبل النظام، إذا لزم الأمر، كما وصفها جون Sibly.

وعند هذه النقطة، لا تستخدم حتى وكيل / كعب، لذلك _MERGE_PROXYSTUB أي تأثير.

scroll top