TMetafile et TMemoryStream
Bonjour,
J'ai un problème pour enregistrer et relire un TMetafile comme partie d'un fichier binaire plus global. :oops:
Pour l'écriture, je fais :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| TMemoryStream* pms=new TMemoryStream();
metafilePtr->SaveToStream(pms); // metafilePtr est un pointeur vers mon TMetafile
pms->Position=0;
// Size représente la taille du flux en mémoire, en octets
__int64 bufferSize=pms->Size;
char* bufferPtr=new char[bufferSize];
// lit le contenu du flux dans bufferPtr
pms->ReadBuffer(bufferPtr,bufferSize);
delete pms;
// le tampon bufferPtr est supposé représenter le contenu binaire du TMetafile, à ce que j'ai compris => je l'écris dans mon fichier (fonction personnelle)
...
delete[] bufferPtr; |
Jusque là, tout semble (?) bien se passer...
Maintenant, je veux relire le contenu sauvegardé et le charger dans un TMetafile
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| char* bufferPtr=new char[bufferSize];
// je charge le contenu lu dans le tampon bufferPtr (fonction personnelle)
...
TMemoryStream* pms=new TMemoryStream();
// inutile a priori
pms->Position=0;
// met à jour pms à partir du tampon
pms->Write(bufferPtr,bufferSize);
delete[] bufferPtr;
pms->Position=0;
metafile_->LoadFromStream(pms); // ici, j'ai le message d'erreur peu explicite MetaFichier incorrect !
delete pms; |
Mon problème => je ne vois pas où est l'erreur...