Bmpの読み込み – プログラミング – Home

通知
すべてクリア

Bmpの読み込み


masa
 masa
(@masa)
ゲスト
結合: 25年前
投稿: 64
Topic starter  

チップごとにBmpを読み込みたいので,下記のプログラムでBmpを読み込んでいるのですが、BmpDCの数を増やす(500ぐらい)と動作がおかしくなってしまいます。
原因が全然わかりません。どうかおしえてください。また、チップごとにBmpをよみこむ良い方法があるなら、教えてください。

HDC BmpDC[500];

hdc=GetDC(hwnd);
for(i=0;i<500;i++){
hBit=(HBITMAP)LoadImage(hInst,FileName,IMAGE_BITMAP,0,0,LR_LOADFROMFILE | LR_CREATEDIBSECTION);
BmpDC[i]=CreateCompatibleDC(hdc);
SelectObject(BmpDC[i],hBit);
DeleteObject(hBit);
}
ReleaseDC(hwnd,hdc);


引用解決済
トピックタグ
宍戸 輝光
 宍戸 輝光
(@宍戸 輝光)
ゲスト
結合: 23年前
投稿: 3
 

メモリデバイスコンテキストやHBITMAPを作りすぎのような
気が....。リソースが足りなくなっているのでは? 「HDC
に選択したHBITMAPを削除」しているのも、問題がありそう
(というより、削除できない?)。

BMPを個別に「一枚ずつのビットマップ」として読み込むの
であれば、DIBとして読み込んだ方が良いでしょう。これなら
ピクセル列とBITMAPINFO構造体だけを確保すれば良くリソース
を消費しないので、個々のBITMAPが小さければ問題ないはず
です。ただしこの場合はHBITMAPを取得できないので、ビット
マップに対して直接GDIによる描画を行うことはできなくなり
ます(ビットマップの描画とメモリ上のピクセル列の直接操作
は可能)。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました