2009-08-18 6 views
0

Je suis en train de déboguer douloureusement une ancienne application MFC VS 6.0, et j'aimerais vraiment entrer dans le code MFC. Maintenant, le code a navire avec VS6, et les symboles (mfc42.pdb) aussi, mais le débogueur affirmeCompiler MFC sur Visual Studio 6.0

'Symboles chargés (information) source dénudée'

sur la fixation. Par these conseils, toutes les copies de mfc42.pdb sur ma machine sont en effet dépouillées (leur taille est de 1.5M-2M, nulle part près de 10M). Je reçois des piles significatives, mais je ne peux pas entrer dans le code MFC.

J'essaie actuellement de recompiler MFC pour obtenir des symboles codeview (oui, la situation est que désparent). J'ai essayé la suite this belle visite virtuelle par Daniel Howard, mais je continue à tomber sur les erreurs de l'éditeur de liens suivants:

... delayimp.lib Création bibliothèque .. \ lib \ mfc42.LIB et l'objet .. \ lib \ mfc42.exp mfc42.exp: erreur LNK2001: symbole externe non résolu "public: int __thiscall CTime :: operator == (classe CTime) const" (?? 8CTime @@ QBEHV0 @@ Z) mfc42.exp: erreur LNK2001 : symbole externe non résolu "public: int __thiscall CTime :: opérateur! = (classe CTime) const" (?? 9CTime @@ QBEHV0 @@ Z) mfc42.exp: erreur LNK2001: symbole externe non résolu "public: int __thiscall CTime: : opérateur < (classe CTime) const "(?? MCTime @@ QBEHV0 @@ Z) mfc42.exp: erreur LNK2001: symbole externe non résolu "public: int __thiscall CTime :: opérateur> (classe CTime) const" (?? OCTime @@ QBEHV0 @@ Z) mfc42.DLL: erreur irrécupérable LNK1120: 4 externes non résolus

CTime a été implémenté dans TIMECORE.cpp, qui n'implémente en effet pas de tels opérateurs. Je n'ai pas pu localiser les utilisateurs de l'opérateur.

Quelqu'un a un aperçu de ceci? Tout conseil indirect serait également bien.

Répondre

3

Il est défini dans AFX.INL dans VC98 \ MFC \ Include \ AFX.INL. Vous avez probablement ajouté uniquement le fichier .cpp à votre projet.

Le passage au code MFC est indispensable. Le code MFC est un must. Cela vous rend humble et en colère en même temps.

1

Ma mémoire est généralement très mauvaise et c'était il y a longtemps, mais je crois me rappeler qu'une version des bibliothèques compilées et liées pour le débogage était l'une des options supplémentaires du programme d'installation VC6 ++.

+0

Merci Manni. VC6 ++ vient en effet avec MFC42d.dll et les goûts, si c'est ce que vous voulez dire - mais j'ai besoin de symboles complets (codeview) pour la version de production, MFC42.dll. Vous souvenez-vous d'avoir installé * ça *? J'ai vérifié à nouveau par votre réponse - il y avait ce composant d'installation de MFC appelé «source Browser». L'ajouter n'a pas semblé faire une différence, et googler autour indique probablement une sorte de prédécesseur d'explorateur d'objet/intellisense. –

Questions connexes