[résolu]Problème de chaîne de caractères (BSTR)
Bonjour tout le monde,
J'aimerais savoir si quelqu'un sait comment ça se fait que lorsque je renvois une chaine de caractères qui est censée contenir la totalité des caractères de mon fichier emf, seuls les 223 premiers caractères de la chaine renvoyé sont corrects, les autres caractères étant tous égaux à 255.
Merci beaucoup car je ne vois absolument pas à quoi c'est du.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
BSTR CPrjDoc::getMetaFile()
{
CString strResult;
//Calcul de la taille du fichier
DWORD taille = 0;
HANDLE hfl = CreateFile("F:\\fichier.emf", GENERIC_READ,
FILE_SHARE_READ, NULL, OPEN_EXISTING,
FILE_FLAG_SEQUENTIAL_SCAN, NULL);
if(hfl != INVALID_HANDLE_VALUE)
{
taille = GetFileSize(hfl, 0);
CloseHandle(hfl);
//Ouverture du fichier en lecture
ifstream mf("F:\\fichier.emf") ;
if(mf.good())
{
//Lecture des caractères du fichier
while(!mf.eof())
{
strResult+= mf.get();
}
}
mf.close();
}
return strResult.AllocSysString();
} |