2013-01-15 4 views
0

J'essaye de construire un petit programme qui utilise un fichier dll. En utilisant le compilateur VC, je reçois une erreur disant que:Fonction LoadLibrary - erreur de compilation

erreur C2039: 'LoadLibrary': n'est pas un membre de '`espace de noms global' » erreur C3861: 'LoadLibrary': identificateur non trouvé

LoadLibrary est inclus dans le fichier winbase.h et tous mes fichiers incluent stdafx.h donc, winbase est déjà inclus. Je ne pouvais pas comprendre pourquoi il ne peut pas compiler ... Voici le code:

 if(m_lib) 
    ::FreeLibrary(m_lib); 
    if((m_lib=::LoadLibrary(path))!=NULL) 
    { 
    m_pfnManVersion=reinterpret_cast<ManVersion_t>(::GetProcAddress(m_lib,"ManVersion")); 
    m_pfnManCreate =reinterpret_cast<ManCreate_t>(::GetProcAddress(m_lib,"ManCreate")); 
    } 

Merci à advence.

+1

#include « windows.h » – acraig5075

+0

le fichier d'en-tête de fenêtres (WINBASE.H) intéressant qu'il ne s'est pas plaint de la bibliothèque. – thang

+0

@ acraig5075 - "windows.h" est déjà inclus dans "stdafx.h" – xyzt

Répondre

0

Si vous regardez à travers vous remarquerez que LoadLibrary est en fait une définition de macro qui vous redirige vers la unicode ou la version ascii

#ifdef UNICODE 
#define LoadLibrary LoadLibraryW 
#else 
#define LoadLibrary LoadLibraryA 
#endif // !UNICODE 
Questions connexes