Maison > Article > développement back-end > Pourquoi GetCurrentDirectory() lève-t-il une exception et comment puis-je la corriger ?
Problème :
Une exception est rencontrée lors de la tentative d'obtention du répertoire actuel à l'aide de GetCurrentDirectory().
Cause possible :
La variable LPTSTR NPath n'a pas été correctement initialisée.
Solution recommandée :
Pour résoudre ce problème , allouez de la mémoire pour NPath avant d'utiliser GetCurrentDirectory(). Vous pouvez également envisager d'utiliser la fonction GetModuleFileName() pour obtenir le chemin de l'exécutable.
Exemple de code pour l'utilisation de GetModuleFileName() :
TCHAR buffer[MAX_PATH] = { 0 }; GetModuleFileName( NULL, buffer, MAX_PATH );
Exemple de code pour Extraction du répertoire du chemin :
std::wstring ExePath() { TCHAR buffer[MAX_PATH] = { 0 }; GetModuleFileName( NULL, buffer, MAX_PATH ); std::wstring::size_type pos = std::wstring(buffer).find_last_of(L"\/"); return std::wstring(buffer).substr(0, pos); }
En utilisant GetModuleFileName() et en extrayant la partie répertoire, vous pouvez obtenir avec succès le répertoire actuel sans rencontrer d'exceptions.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!