Delphi 中 Printers.dcu 的 Bug |
尚未結案
|
wyndog
資深會員 發表:7 回覆:362 積分:348 註冊:2004-10-12 發送簡訊給我 |
這個 bug 蠻久了,只要你的預設印表機是網路印表機
當印表機無法連線的時候,一執行到跟 Printers 有關係的,就會發生問題
從資料上查起來,好像是一有 Delphi 開始就有這個 Bug 了
本來很期待 Delphi 7 update 會解決
雖然對這個千古老 Bug 到這麼新版還要靠 update 來修正
有點不是滋味,不過,能夠解決總是好事一件
但很不幸的,問題依舊在...
說明一下,發生問題的狀況,需符合這二個條件 1. 預設印表機是網路印表機(透過網芳分享的,Printer Server 的沒試過)
2. 區域網路無法連線的時候 如果只是不能印表,也就算了,連扯到印表機的設定都不行
像我用 QuickReport 的 form 也是直接丟個例外出來,Delphi 連開都不能用
執行檔的話,會直接結束....... 我研究了一下 priters.pas 發現問題是出在這個地方
TPrinter.SetPrinter 裡的 DocumentProperties
在剛講的那二種狀況之下
用 DocumentProperties 來取得 Printer Info 的大小時
它會傳回 0.... 正常會傳回 size 或者是 < 0 的 error code
偏偏... 它是傳回三不管的 0.....
而 GlobalAlloc 根據實驗,給它 0 size,它也是照樣傳一個正常的 handle 回來
無怪乎會丟出例外...>"<
我是用了點 dirty 的手法避開這個問題了
雖然,發生問題的情況有點特別,但還是希望 borland 能夠修正一下這個 bug
我沒試過 bcb/delphi 2005 有沒有這問題
不過,它們血源這麼近,又是 windows api 的問題,我想可能也會有相同的 BUG.. 發表人 - wyndog 於 2004/12/21 10:16:34
|
海星
高階會員 發表:41 回覆:217 積分:106 註冊:2003-01-09 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |