2012-01-19 1 views
2

je le code suivant:Récupérer des fonctions à partir de DLL en utilisant GetProc et y accéder?

GetNumberOfFormatsFunc getNumberOfFormats = (GetNumberOfFormatsFunc)lib.GetProc("GetNumberOfFormats"); 
    if (getNumberOfFormats != NULL) 
    { 
    RINOK(getNumberOfFormats(&numFormats)); 
    } 

La GetProc fonction fait ceci:

GetProcAddress(module, proceName) 

lorsque la fonction « getNumberOfFormats » est appelé le débogueur ne marchez pas en elle, même si je presse « F11 ' dessus. Il ne me dit pas non plus que j'ai raté un callstack.

La fonction existe dans un projet distinct et il lie à ce projet copmiled DLL. Des idées pour lesquelles je ne peux pas entrer dans le code? Visual Studio ne peut pas trouver les symboles de débogage pour votre DLL.

+0

Même si vous ne pouvez pas intervenir, la fonction est-elle appelée correctement? –

+0

La fonction est appelée sans problème, tout ce qui est supposé l'exécuter s'exécute. – tweetypi

Répondre

2

Vérifiez si le fichier PDB est généré pour votre DLL et existe.

+0

En fait, je viens de trouver qu'il y avait un 7z.pdb dans le répertoire de débogage qui correspondrait à 7z.dll dans lequel il se connecte à partir de là ... – tweetypi

+0

jamais le dernier commentaire, le pdb a été généré mais il était dans le répertoire de débogage d'un dossier différent dans le dossier de débogage du projet en train de charger la bibliothèque. Déplacer le pdb dans le même dossier que le répertoire de débogage du projet qui chargeait la DLL 7z l'a corrigé. – tweetypi

1

Vous pouvez vérifier les informations sur les symboles chargés lors du débogage à partir de Debug-> Windows-> Modules. Faites un clic droit sur la DLL souhaitée et configurez le symbole approprié s'il n'est pas correctement chargé.

Questions connexes