2010-07-01 6 views
-1

Existe-t-il une API fiable pour obtenir le dossier Windows dans Windows en C++? J'utilise la méthode suivante, mais elle a échoué.Existe-t-il une API fiable pour Obtenir le dossier Windows dans Windows?

BOOL CQUserInfoHelper::GetWindowsPath(CString& strWindowsPath) 
    { 
     TCHAR windowsPathTemp[MAX_PATH]; 
     int nSize = MAX_PATH; 
     ::GetWindowsDirectory(
      windowsPathTemp, 
      nSize); 
     strWindowsPath = windowsPathTemp; 
     return TRUE; 
    } 
+0

"il a échoué" est pas une description d'erreur j'aime lire. – Timbo

+0

Il ne retourne pas XX: \\ Windows, mais quelque chose d'autre. il est rapporté par mon utilisateur, je ne peux pas le déboguer sur leur pc – sxingfeng

+1

il y a 2 réponses pour que: Si la longueur est supérieure à la taille du tampon, la valeur de retour est la taille de la mémoire tampon nécessaire pour maintenir le chemin. Si la fonction échoue, la valeur de retour est zéro. Pour obtenir des informations d'erreur étendues, appelez GetLastError. gérer ces problèmes – Arseny

Répondre

4

Essayez ceci -

const DWORD dwBufferLength = 65537; 
CStringW strBuffer; 

if (!::GetCurrentDirectory( dwBufferLength , 
           strBuffer.GetBuffer(dwBufferLength)) ) 
    return L""; 

...

strBuffer.ReleaseBuffer(); 
Questions connexes