2013-08-25 7 views
2

Très bien, vous avez tous été d'une aide précieuse aujourd'hui et j'ai une dernière question qui terminera mon programme et j'espère qu'il ne sera pas difficile de répondre. Ce que je veux faire est de saisir le chemin du dossier temporaire de l'utilisateur et de l'enregistrer dans une chaîne std :: string.Obtenir le chemin du dossier temporaire des utilisateurs C++

j'ai pu trouver ce lien: http://msdn.microsoft.com/en-us/library/aa364992%28VS.85%29.aspx

Le seul problème avec le lien est que je ne comprends pas comment le prendre et l'enregistrer dans une chaîne.

Répondre

5
std::wstring strTempPath; 
wchar_t wchPath[MAX_PATH]; 
if (GetTempPathW(MAX_PATH, wchPath)) 
    strTempPath = wchPath; 

changement wstring à string, wchar_t à char et GetTempPathW-GetTempPathA si vous ne l'utilisez Unicode.

-1

Cette fonction semble utiliser une chaîne de style C. Cependant, vous pouvez le convertir en une chaîne C++.

#define MAX_LENGTH 256 // a custom maximum length, 255 characters seems enough 

#include <cstdlib> // for malloc and free (optional) 
#include <string> 

using namespace std; 

// other code 

char *buffer = malloc(MAX_LENGTH); 
string temp_dir; 

if (GetTempPath(MAX_LENGTH, buffer) != 0) temp_dir = string(buffer); 
else {/* GetTempPath returns 0 on error */} 

free(buffer); // always free memory used for the C-Style String 

// other code 

Vous pouvez également allouer et libérer de la mémoire en utilisant new[] et delete[] si vous le trouvez plus facile! Vous pouvez également utiliser l'allocation de mémoire statique! Je souhaite que cela aide ...: D

Questions connexes