سؤال

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

وأستخدمه ATL (غير المدارة C ++) التحكم في المستخدمين وترغب في استخدام كائن اكتف بالمستخدمين. أريد أن أعرف كيفية نعلن ذلك حتى أستطيع أن تعيين خاصية أو استدعاء أسلوب.

وعلى سبيل المثال، إذا كان بإمكاني تعيين متغير إلى ذلك، ثم أود أن نسميه "متغيرة> LoadMovie () '

وأنا أعلم أن هذا هو السوبر مثير للسخرية ... بالحرج تقريبا ليطلب منها هنا. ؛) (تقريبا)

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

المحلول

إذا قم بإجراء #import دلل (الذي أوصى عند العمل مع COM لأنه يجعل حياتك أسهل بكثير)، يمكنك استخدام مؤشر الذكية يقترن CLSID للكائن. تذكر أن فئات المؤشر الذكية لديها ما بعد الإصلاح "PTR" بعد اسم الواجهة.

وعلى سبيل المثال:

ISomeInterfacePtr pSomeInterface( CLSID_SomeComponent );
HRESULT hr = pSomeInterface->SomeMethod();

وعلى أمل أن يساعد.

تعديل: إذا تريد التحقق من HRESULT للتخصيص، يمكنك القيام بما يلي:

ISomeInterfacePtr pSomeInterface = 0;
HRESULT hr = pSomeInterface.CreateInstance( CLSID_SomeComponent );

نصائح أخرى

ولقد قطع ولصق التعليمات البرمجية الضرورية مرات عديدة لا أستطيع أن أتذكر بناء الجملة الصحيح ولكن عليك أن:

والحصول على CComPtr <> من واجهة الصحيح، CreateInstance الكائن QueryInterface الحصول على واجهة تريد (على افتراض انك لا تستخدم CComPtr)

وثم استدعاء الأساليب على ذلك.

وبدلا من ذلك يمكنك قم بإجراء #import دلل، ثم المترجم سوف تولد ج ++ فئة مع كل الأساليب والخصائص بالنسبة لك.

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