2010-07-24 4 views
2

Aujourd'hui, j'ai dû passer le didacticiel ATL à partir de MSDN, mais j'ai rencontré un problème. Malheureusement, je ne suis pas un vrai développeur C++ et je ne peux pas le faire moi-même.Ajouter un bug de point de connexion?

Lorsque j'ajoute un point de connexion, l'assistant crée _IPolyCtrlEvents_CP.H mais n'implémente pas les méthodes Fire_ClickIn et Fire_ClickOut. Comment je peux les implémenter?

J'utilise VS2010.

Merci pour votre CONSEILLE :)

+0

Déjà trouvé une réponse. Dans les échantillons VS2010. Mais pour moi, c'est définitivement un problème avec l'Assistant Ajouter un point de connexion de Studio. :( –

+0

Qu'avez-vous fait pour le réparer? Ayant le même problème ... –

Répondre

2

J'apprends aussi la programmation ATL et rencontrer aussi le problème.
Ce n'est pas un bug de connexion.
Dans l'assistant du point de connexion, vous devez sélectionner "Bibliothèques de types disponibles" comme "PolygonLib < 1.0>". Par défaut, il est "imbriqué IDL".

+0

Cette solution a très bien fonctionné. – Nate

1

J'ai rencontré un problème similaire. Assurez-vous d'ajouter les méthodes de point de connexion en cliquant avec le bouton droit sur le _IxxxEvents sous la classe xxxLib en mode Classe. Vous verrez la méthode ajoutée à la section disputerface _IxxxEvents ... methods:. Si le stub de code de méthode a été créé ailleurs dans le code, la méthode d'événement a été ajoutée incorrectement et la méthode Fire_ ne sera pas générée.

0

Mais j'ai rencontré une situation différente. J'ai ajouté de nouvelles méthodes dans XXXLib/IXXXEvent, et elles ont été automatiquement ajoutées dans XXX.idl avec la balise "dispinterface IPolyCtlEvents". Mais après avoir ajouté des méthodes comme le dit le guide MSDN, la méthode Fire n'est pas ajoutée à _xxxEvent_CP.H. J'ajoute donc de nouvelles méthodes dans IXXXEvent au lieu de XXXLib/IXXXEvent, et le problème est résolu.

2

Solution dans vs2012: Dans 'Mise en œuvre d'un point de connexion' http://msdn.microsoft.com/en-us/library/s7zd1wd1.aspx

Avant l'étape 3:

3.pre (NE PAS SELECT 'IDL intégré' sous 'bibliothèques de types disponibles', la typelib de sélection projet à la place

Si nous choisissons typelib, les méthodes Fire_ * seront générées.

Questions connexes