Bonjour, j'ai un problème avec mon code ici.FindFirstFile LPCSTR
LPCSTR mergeString(LPCSTR firstString, std::string secondString)
{
string convertedString = ConvertString(firstString);
LPCSTR mergedString;
int i = convertedString.size();
convertedString.insert(i, secondString);
mergedString = (convertedString.c_str());
return mergedString;
}
void GetFiles(LPCSTR path)
{
WIN32_FIND_DATA File_Data;
LPCSTR lPath = mergeString(path,"\\*.txt");
FindFirstFile(lPath, &File_Data);
wcout << File_Data.cFileName;
}
Vous passez dans le chemin que vous souhaitez utiliser dans les GetFiles (chemin de LPCSTR) Puis-je utiliser la fonction mergestring pour fusionner ensemble le chemin avec un tout extension (\ *. Txt) fonctionne, sauf quand il retourne le LPCSTR alors c'est juste beaucoup de caractères wierd et je ne sais pas pourquoi ou est-ce une meilleure façon de faire cela?
Ceci est votre principal problème: http://stackoverflow.com/questions/6441218/can-a-local-variables-memory-be-accessed-outside-its-scope – chris
Selon [cette documentation pour la méthode 'c_str'] (http://www.cplusplus.com/reference/string/string/c_str/), la valeur de retour est" uniquement garantie pour rester inchangée jusqu'à l'appel suivant à une fonction membre non constante du objet chaîne. " La destruction de l'objet compte comme une fonction membre non constante, point auquel la valeur renvoyée par 'c_str' n'est plus valide. –