喫茶XRAYトップページ


[540] GDI32.DLLのエラーについて返信 削除
2005/12/12 (月) 17:06:55 pal
初めての投稿です、よろしくお願いします。

plPrevを使っていて
今年7月頃から「GDI32.DLLのエラー」がでて困っています。
マスターには この件でメールのやり取りをさせていただき
親切な対応を頂きありがとうございました。

「GDI32.DLLのエラー」は頻繁にはでないので困ったものです。
今年7月から今日まで3件のクライアントからクレームを受けた。
当初はCANON製だと疑ったのですが
後の2件はどちらもEPSONでした。
3件ともに共通するのはプリンタがUSB接続なんです。
この「USB」ってのが解決のヒントになりませんかね?==>マスター

最初は DataModule にplPrev & plPrinter を置いて
あちこちから使い回ししていた。
クレームがあった後、印刷フォームを別立てにして
かつ uses 節の最初のほうに Winspool を追加した。
uses Winspool, Windows, Messages, .......;

これでクライアントには出してあるんですが
今のところクレームがないのは うまくいっているのか?
どうも怪しいんですが、使っていないのでは?
てなことで上記のことは解決策になっているかどうか不明です。

以上、

追伸
私もDBISAMを使用しています、v3.30
非常に気に入っています。
この喫茶室でDBISAMのことも会話してもよろしかったら
いろいろやってみたいですね!!
では、bye



[541] Re:GDI32.DLLのエラーについて返信 削除
2005/12/12 (月) 17:48:17 Mr.XRAY
▼ palさん
> 初めての投稿です、よろしくお願いします。

どうも,いらっしゃいませ.
GDI32.DLLですか〜.いやなことを思い出してしまいました.(^_^)
USBですか.機会をみて調べてみます.
でも,

> かつ uses 節の最初のほうに Winspool を追加した。
> uses Winspool, Windows, Messages, .......;

これって,Delphi MLでも過去に読んだ記憶があります.詳細は失念.

> 今のところクレームがないのは うまくいっているのか?
> どうも怪しいんですが、使っていないのでは?


クライアントが「こりゃダメダ」と使っていなかったら悲しいです.
そうそう,DBISAMなんですが.情報があります(RANさんのblobからのリンク).
http://www.elevatesoft.com/scripts/incident.dll?action=viewrep&release=4.19&type=f&incident=2041
(RANさんの元ネタ http://blog.so-net.ne.jp/bousyo/2005-12-11-1 )

でもこれは v4.16 and v4.19.かな.

[549] Re2:GDI32.DLLのエラーについて返信 削除
2005/12/13 (火) 15:32:38 やんきた
はじめまして。

実は私のほうでもGDIエラーはよく出てます。
どこでエラーが出ているのかはわかりませんが、私にしる範囲であると、
1.osはxpでのみ再現
2.プリンターをひとつも登録していないと発生する頻度が高まる。
3.一度他のアプリケーションから印字すると発生しづらい。
4.GDIエラーが出ても、exeを再起動すればほぼでなくなる。(たまに出る)
以上です。

対策があれば幸いです。

[550] Re3:GDI32.DLLのエラーについて 何とか直したい返信 削除
2005/12/13 (火) 20:08:43 Mr.XRAY
▼ やんきたさん はじめまして.よろしく.

情報ありがとうごさいます.
GDIのエラーが発生する方は,けっこういらっしゃるようですね.
なんとか対処したいと思います.

う〜む.私の周囲の(Delphiをインストールしていない)PCはWin95〜WinXP
まで数台ありますが,いままで発生していないんですよね.
ご迷惑をおかけしていますが,時間を下さい.m(_ _)m


[718] Re4:GDI32.DLLのエラーについて 何とか直したい返信 削除
2006/4/1 (土) 13:02:45 わたなべ
Mr.XRAYさんのコンポーネントには、いつもお世話になっております。
GDI32.DLLのエラーについてですが、先日でバック中に起きたので追いかけて見ました。

procedure TCustomplPrev.SetPaperInfo;
var
     WRa,HRa,Ratio1,Ratio2: Double;
begin
     if FplSetPrinter=nil then begin
       if Printer.Printers.Count>0 then begin
         {プリンタ設定コンポがない時は現在のプリンタの情報を取得}
         FplPaperWidth  :=GetDeviceCaps( Printer.Handle,PHYSICALWIDTH);
         FplPaperHeight :=GetDeviceCaps( Printer.Handle,PHYSICALHEIGHT);
         FplPageWidth   :=GetDeviceCaps( Printer.Handle,HORZRES);
         FplPageHeight  :=GetDeviceCaps( Printer.Handle,VERTRES);

Printer.Handle,PHYSICALWIDTHで、例外・・・・なんとかとエラーになっていました。
この後GDI32.DLLのエラーが出ていました。

何度も再現していたので、詳しく見ようと思ったら出なくなりました。

ネットワークプリンターを数台使用していると出るような気がします。

私の環境が変なのかもしれませんが、Delphi7,XPで、plSetPrinterを貼り付けているフォームを開くと何かの原因(不明)ですが、
リストで選択しても、別なプリンターを表示する不具合が起きています。

Cannon LBP3000           (オフライン)
EPSON LP-2500            (ネットワーク)
EPSON PM-870             (オフライン)
EPSON PX-V630            (オフライン)
FAX
RICOH imagio NeoC245 RPCS      (ネットワーク)
RICOH IPSIO Nx86S RPCS         (オフライン)
いきなりPDF
自動 EPSON LP-1000         (SV03上)

正常な時は、EPSON PX-V630をリストボックスで選択すれば、EPSON PX-V630と表示されますが、
不具合時は
EPSON PX-V630を選べばRICOH imagio NeoC245 RPCS
EPSON PM-870を選べばRICOH IPSIO Nx86S RPCS
EPSON LP-2500を選べばいきなりPDF
自動 EPSON LP-1000を選べばCannon LBP3000

この現象はが起きたらDelphiを終了しないと、現象は続きます、ためしにMr.XRAYのサンプルを
呼び出しても、現象は続きます。

この現象が起こる起こらないが、関係しているのではないでしょうか?
プリンタ番号と、ItemIndexの番号がどこかで変に変になるのでしょうか?

メモリーを多く使っている(Gridが有る)フォームを開くとなんだか起きるような?

解決していたらすみません。



[719] Re5:GDI32.DLLのエラーについて 何とか直したい返信 削除
2006/4/1 (土) 22:07:00 Mr.XRAY
▼ わたなべさん
貴重な情報ありがとうございます.
現在,TplSetPrinterのコードを全体的に見直しています.
期待にそえるかどうか疑問ですが,努力はしています(汗).

過去に頂いた情報も参考にしながら作業をしています.


[720] Re6:GDI32.DLLのエラーについて 何とか直したい返信 削除
2006/4/3 (月) 09:01:49 わたなべ
Mr.XRAYさん頑張ってください。
Mr.XRAYさんのコンポーネントは、私のソフトの中で無くてはならないコンポーネントの一つです。
できることがあれば、何でもご協力いたします。

私のほうでも、調べて、またご連絡いたします。

[721] Re7:GDI32.DLLのエラーについて 何とか直したい返信 削除
2006/4/3 (月) 22:35:14 Mr.XRAY
▼ わたなべさん
どもどもです.

> Mr.XRAYさん頑張ってください。
お心づかいありがとうございます.
利用者の責任で利用するとはいっても,ネット上で公開している以上,多少
なりとも(?)責任を感じています.

今日は,明日までに作成しなければならない書類を作成していますので,
コンポの検討はお休みです.
でも,お休みが結構後で尾を引くんですよね.一気にやった方がいい時と,
少し時間をおいた方がコードが見える場合があり,何とも言えません (^_^;)


INCM/CMT
Cyclamen v3.82