[WR2.0]DIB系のWindowsAPIについて
-
小林ゲスト
★投稿日:2002/03/06(Wed)14:36:27
お世話になっております。
WingReport2.0を使わせて頂いております。
WingReportで作成した帳票にImage objectを貼り付けて印刷しています。
これが、極希に正しく印刷されないことがある現象に悩まされております。
この現象に対応するために、こちらで作成したソフトウェアのソースコードの見直しを進めているのですが、その課程で気になる情報を見つけました。
NT系のOSでは複数領域にまたがったメモリブロックを使用してGetDIBits API, StretchDIBits API, CreateDIBitmap API, SetDIBits API等を利用すると、これらのAPIが動作しないことがある、という情報です。
WingReport2.0の内部では、この問題については対応されていますでしょうか?
なお、この情報元はDelphiのメーリングリストで、以下のURLで始まっているスレッドがそれに該当します。御覧になって下さい。
http://www2.big.or.jp/~osamu/Delphi/delphi-browse.cgi?index=063699
以上、お忙しいところ申し訳ありませんが、ご回答の方、宜しくお願い致します。
松島@ソフトウィングゲスト
お世話になります。
イメージが正しく出力されない現象について下記の項目が原因とな
ることが多くございますので、お手数ですがご確認いただけないで
しょうか?
1.イメージデータの異常
2.システムリソースが少ない場合
※お知らせ頂きましたイメージ処理時に使用するメモリーブロック
の件につきまして、Delphiメーリングリストの内容を拝見させ
て頂きました。
内容から、Delphiに実装されたメモリー領域獲得用の関数(API)
を使用した場合、又はWindowsのメモリー獲得用APIを使用し複
数回に分割して取得した領域を使用した場合問題が発生する可能
性があると推測されます。しかしながら、WingReportの内部で
はイメージデータ用の領域は連続した領域を確保するため、一度
の呼び出しで(WinAPIの呼び出し)処理を行っておりますので、
今回お知らせ頂きました内容につきましては影響ないと判断させ
て頂きました。ただし、WingReportをご利用頂きますお客様が
問題となる方法で確保された(タイプの)メモリー領域を使用
し、WingReportへのデータ(DIBデータなど)設定を行った場合は
問題が発生する可能性はございます。この場合WinAPIで問題が
発生するのではなく、WingReport内で問題が発生すると推測い
たします。
以上、宜しくお願いいたします。
小林ゲスト
大変参考になりました。
素早いご回答、ありがとうございました。
- フォーラム「旧サポート掲示板」には新規投稿および返信を追加できません。