Bonjour,
J'ai un problème pour enregistrer et relire un TMetafile comme partie d'un fichier binaire plus global.
Pour l'écriture, je fais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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...