Maison  >  Article  >  développement back-end  >  Pourquoi GetCurrentDirectory() lève-t-il une exception et comment puis-je la corriger ?

Pourquoi GetCurrentDirectory() lève-t-il une exception et comment puis-je la corriger ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-09 17:53:02433parcourir

Why is GetCurrentDirectory() throwing an exception and how can I fix it?

Erreur lors de l'obtention du répertoire actuel

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn