2009-09-18 6 views
2

J'utilise gdi C++, La fonction StretchDIBits échoue parfois si je dessine de grandes images telles que 7000 * 5000. Il ne dessine rien. GetLastError() indique pas assez de ressources système. Quelqu'un peut-il expliquer pourquoi StretchDIBits besoin de ressources même Le DC est préparé avec succès.StretchDIBits a échoué, parfois il ne dessine rien,

Répondre

1

Il se peut que StretchDIBits développe l'image source dans un bitmap temporaire de mêmes dimensions que le bitmap de destination, puis copie le temporaire dans la destination comme étape finale. Ainsi, même si vous disposez de suffisamment de mémoire pour créer le bitmap de destination (140 Mo) avant l'appel StretchDIBits, votre système ne dispose pas des 140 Mo supplémentaires à allouer au bitmap temporaire.

+0

Je ne suis pas d'accord. Il n'y a aucun moyen que sa machine ne dispose pas de 280 Mo de mémoire libre. Même s'il n'y a pas beaucoup de RAM libre, il y a certainement 280 Mo d'espace de fichier de page. Il aurait une erreur à propos de "Le système est à court de mémoire virtuelle." –

Questions connexes