掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
文字の位置からintへ (ID:55467)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>> CDib ってMFCですか? そうだね。惜しいね。 これ、StretchDIBits() 使って画面にコピーしてくれるので、 非常に便利なんですが。 >> やはり連続して使用すると描画がとまってしまいます こちらでは CDibで StretchDIBits() を使っていますが、 Bitmap で作ったパラパラ漫画形式の簡易ムービー (200ms間隔で次々とビットマップを描画、64枚程度でループ) に使用していますが、半日動かしても大丈夫でした。 (Win2K/VC++6.0) 取得したメモリやハンドルの解放は大丈夫ですか。 あと、ReleaseDC()/DeleteDC()/DeleteObject() とか。 1箇所でもメモリリークがあると、いずれ落ちます。 とくに大きな画像を扱っているので画像データのメモリリーク が起きているとすぐに停止してしまうでしょう。 Win2Kなら、タスクマネージャでメモリ使用量を見れるのですが。 そちらのOSは何でしたっけ? まあ、どんなOSでも可能な方法といえば、 例えば、画像データのアドレスがどんどん増えていっているとか でもわかると思われます。 いくつかのポイントでアドレスやハンドルの値のログをファイルに とってみてはどうでしょうか。 >> これは自分のプログラムが悪いということでしょうか? 上のメモリ確認の結果や、プログラム見ないと何ともいえませんね。 大量の画像データを扱うことによりOSのメモリ管理で負荷になって いるかもしれないので。 1画面 1600*1200*3=5760000バイト 5Mバイトを毎秒20画面とすると、 100Mバイト/秒の転送速度が必要に なりますよね。 それもVideoCard への転送だけで。 これに画面構成のプログラムが動作するわけですから、 この3〜4倍になるのではないかな。 もちろん、OSや他のアプリも稼動しているわけで。 そうすると、Pentium4 3.2G で FSB800 でも普通に動くかどうか。 それから、5Mバイトですから、画像のための連続メモリが常にとれるかどうか という問題もあります(メモリのとりかたにもよりますが)。 メモリが正常に取れたかどうかチェックする必要はありますね。 実際のところ毎秒何画面くらいで動きます? 連続で使用すると止まるというのは2回目で止まるということなのかな?
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.