IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

"Right-click->Go to Definition" VC++ 2005


Sujet :

MFC

  1. #1
    Membre émérite
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Par défaut "Right-click->Go to Definition" VC++ 2005
    Salut les Vcppmem

    J'ai remarqué une petite différence avec VC++ 2003.
    Lorsque je place ma souris sur une méthode quelconque d'une classe et que je fais un "right-clik->Go to Definition". L'éditeur de VC++ 2003 va m'ouvrir le fichier *.cpp où la méthode pointé par ma souris est implémentée. En d'autres termes il me renvoie vers la définition de la fonction. Ce qui est bien. Si c'est vers la déclaration j'aurais fais Go to Declaration.

    Mais avec VC++ 2005 lors que je procède ainsi il m'envoie toujours vers la déclaration de la méthode et non sa définition.

    Comment puisse-je changer celà sous VC++ 2005. Y-a-t-il des options dans Visual Studio 2005 qui me permette de le faire. Car souvent j'aime bien renifler le code des bibliothèques (MFC ou ATL) pour compléter ma compréhension que me fournit l'MSDN.

    Merci

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    pour renifler le code tu as un onglet specifique qui te permets de voir en dynamique la definition du code en fonction de la position du curseur.
    exemple dans l'exemple ci-dessus j'ai placé le curseur sur CWorkerThread et:


  3. #3
    Membre émérite
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Par défaut
    J'avais remarqué cet onglet. Mais le problème est que cet onglet ne t'indiquera jamais la définition d'une méthode des MFC ou ATL. Il ne t'indique uniquement que les définitions des méthodes du projet couramment ouvert.

    Par exemple sur l'éditeur affiche le menu contextuel en plaçant ta souris sur une méthode des MFC, et va à go to definition.

    Ici, j'ai placé ma souris sur AfxInitExtensionModule() et je voudrais voir la définition de cette fonction et non sa déclaration.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    // Extension DLL one-time initialization
    		if (!AfxInitExtensionModule(DuplicataViewerDLL, hInstance))
    			return 0;
    Mais VC++ 2005 me renvoie ici dans afxdll_.h où je constate qu'il s'agit d'une déclaration
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    // call in every DLL_PROCESS_ATTACH
    BOOL AFXAPI AfxInitExtensionModule(AFX_EXTENSION_MODULE&, HMODULE hMod);
    Mais VC++ 2003 me renvoie ici dans dllinit.cpp où je constate qu'il s'agit bel et bien de la définition que je cherche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    BOOL AFXAPI AfxInitExtensionModule(AFX_EXTENSION_MODULE& state, HMODULE hModule)
    {
    	// only initialize once
    	if (state.bInitialized)
    	{
    		AfxInitLocalData(hModule);
    		return TRUE;
    	}
    	state.bInitialized = TRUE;
     
    	// save the current HMODULE information for resource loading
    	ASSERT(hModule != NULL);
    	state.hModule = hModule;
    	state.hResource = hModule;
     
    	// save the start of the runtime class list
    	AFX_MODULE_STATE* pModuleState = AfxGetModuleState();
    	state.pFirstSharedClass = pModuleState->m_classList.GetHead();
    	pModuleState->m_classList.m_pHead = pModuleState->m_pClassInit;
     
    #ifndef _AFX_NO_OLE_SUPPORT
    	// save the start of the class factory list
    	state.pFirstSharedFactory = pModuleState->m_factoryList.GetHead();
    	pModuleState->m_factoryList.m_pHead = pModuleState->m_pFactoryInit;
    #endif
     
    	return TRUE;
    }

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Et en fermant Visual, effaçant le .ncb, et relançant Visual pour qu'il soit rénénéré, ça buggue toujours?

    PS: Le code source est bien installé ?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre émérite
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Par défaut
    Et en fermant Visual, effaçant le .ncb, et relançant Visual pour qu'il soit rénénéré, ça buggue toujours?

    PS: Le code source est bien installé ?
    Même quand tu crées un nouveau projet. C'est le même problème
    Je viens à peine de faire les testes sous 2005 et 2003.

  6. #6
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    bon c'est vrai que ça ne fonctionne pas dans ton cas ,mais pour d'autres choses oui ..

Discussions similaires

  1. Trigger Right click ?
    Par jacpapac dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 23/02/2009, 13h51
  2. Right click windows explorer : folder ?
    Par boisbaudry dans le forum VBA Access
    Réponses: 10
    Dernier message: 13/10/2008, 09h40
  3. Capturer le right-click sur un treeview ?
    Par marot_r dans le forum IHM
    Réponses: 2
    Dernier message: 15/10/2007, 22h32
  4. [StringGrid] Right Click
    Par Goundy dans le forum Composants VCL
    Réponses: 2
    Dernier message: 26/12/2005, 00h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo