Classe CDataFile et répertoire
Salut,
Dans une de mes fonction je vais lire dans un fichier *.ini grace à la classe CDataFile, qui fonctionne trés bien :
Code:
1 2
| CDataFile* Init= new CDataFile("MonFichier.ini");
Donnee = Init->GetProfileInt(MySection, MyKey, 10); |
Ici, MonFichier.ini est dans le répertoire de mon projet et cela fonctionnais nickel...
Jusqu'à aujourd'hui, car j'ai créé une autre fonction qui n'a absolument rien avoir avec celle évoquer au dessus, seulement, dans cette fonction j'ouvre une DialogBox afin de récupérer le nom d'un fichier dans un autre répertoire pour faire tout autre chose...
Et là arrive le problème, en ouvrant cette DialogBox, et en sélectionnant un fichier, je modifie le chemin dans lequel il va regarder pour ma fonction du dessus... Je m'en suis rendu compte en testant moi-même car avec cette DialogBox lorsque je vais chercher un fichier dans le même dossier que MonFichier.ini il n'y a pas de problème...
Alors je me suis dis en récupérant le répertoire de mon executable (puisque MonFichier.ini est là) je n'aurai qu'à le rajouter et le tour sera jouer...
Code:
1 2 3 4 5 6 7
| char chemin[MAX_PATH];
char *c;
c = chemin + GetModuleFileName(NULL,chemin,MAX_PATH);
CString Cchemin(chemin);
Chemin = Cchemin.Mid(0,Cchemin.ReverseFind('\\')); |
Et maintenant je rajoute chemin dans ma première fonction :
Code:
1 2
| CDataFile* Init= new CDataFile(Chemin + "MonFichier.ini");
Donnee = Init->GetProfileInt(MySection, MyKey, 10); |
Et là ça ne marche pas.. et voilà ce que j'obtient :
Citation:
error C2664: '__thiscall CDataFile::CDataFile(class std::basic_string<char,struct std::char_traits<char>,class st
d::allocator<char> >)' : cannot convert parameter 1 from 'class CString' to 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >'
No constructor could take the source type, or constructor overload resolution was ambiguous
Error executing cl.exe.
Alors si quelqu'un y comprend qqchose ?