如何找出delphi何處引用gdiplus.dll |
尚未結案
|
AnnieLu
一般會員 發表:3 回覆:4 積分:1 註冊:2007-07-27 發送簡訊給我 |
各位前輩:
之前我修改前廠商寫的一個ocx,但因為廠商引用了相當多的元件,其中一個包括gdiplus.dll,但此ocx會造成ie關閉,請微軟查看之後發現是程式執行時會gdiplus.dll此元件的GdiplusStartup此 function,但ie關掉時要去呼叫 gdiplus.dll 的GdiplusShutdown此 function 時,發現 gdiplus已經被 free 掉而 unload 了,所以才造成錯誤。 雖然已經找到問題點,但是我從程式中無法找出那裡有引用 gdiplus.dll,而且我將相關宣告都移除程式還是可以執行,但一樣會出現ie視窗關閉,不知道前輩有沒有人碰過相同狀況,要怎麼樣才能找到引用 gdiplus.dll 的地方呢...>< |
shunchia63
高階會員 發表:26 回覆:141 積分:198 註冊:2007-05-22 發送簡訊給我 |
|
syntax
尊榮會員 發表:26 回覆:1139 積分:1258 註冊:2002-04-23 發送簡訊給我 |
1. 你必須要有原始碼
2. 你已經說出答案 search 「GdiplusShutdown」 3. 做你要做的處理,看是要重新建立物件,還是要修改呼叫行為 ===================引 用 AnnieLu 文 章=================== 各位前輩: 之前我修改前廠商寫的一個ocx,但因為廠商引用了相當多的元件,其中一個包括gdiplus.dll,但此ocx會造成ie關閉,請微軟查看之後發現是程式執行時會gdiplus.dll此元件的GdiplusStartup此 function,但ie關掉時要去呼叫 gdiplus.dll 的GdiplusShutdown此 function 時,發現 gdiplus已經被 free 掉而 unload 了,所以才造成錯誤。 雖然已經找到問題點,但是我從程式中無法找出那裡有引用 gdiplus.dll,而且我將相關宣告都移除程式還是可以執行,但一樣會出現ie視窗關閉,不知道前輩有沒有人碰過相同狀況,要怎麼樣才能找到引用 gdiplus.dll 的地方呢...>< |
AnnieLu
一般會員 發表:3 回覆:4 積分:1 註冊:2007-07-27 發送簡訊給我 |
你好
GdiplusShutdown 只有在 GDIPAPI.pas 裡有用到,但我程式中已將此宣告 disable,照理說應該不會再去引用到,可是我去測試還是會去引用到 gdiplus.dll ,好奇怪喔,不知道會不會是被其它安裝的 3rd-party 元件給引用的.... ===================引 用 syntax 文 章=================== 1. 你必須要有原始碼 2. 你已經說出答案 search 「GdiplusShutdown」 3. 做你要做的處理,看是要重新建立物件,還是要修改呼叫行為 dll 的地方呢...>< |
syntax
尊榮會員 發表:26 回覆:1139 積分:1258 註冊:2002-04-23 發送簡訊給我 |
你可以將電腦裡的 gdipapi.dll 移除、改名
然後使用 delphi 執行,這樣一定會出錯,但是是由整合環境去執行的,所以有機會的話會跳到出錯的程式碼附近, 這樣可以提高你找到東西的機率 ===================引 用 AnnieLu 文 章=================== 你好 GdiplusShutdown 只有在 GDIPAPI.pas 裡有用到,但我程式中已將此宣告 disable,照理說應該不會再去引用到,可是我去測試還是會去引用到 gdiplus.dll ,好奇怪喔,不知道會不會是被其它安裝的 3rd-party 元件給引用的.... ===================引 用 syntax 文 章=================== 1. 你必須要有原始碼 2. 你已經說出答案 search 「GdiplusShutdown」 3. 做你要做的處理,看是要重新建立物件,還是要修改呼叫行為 dll 的地方呢...>< |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
不小心看到本篇,建議你到 http://www.eurekalog.com/ 下載它的試用版,這套可以指出第一個發生錯誤時的程式碼位置(但有些狀況並不會發生), 或許可以幫助你找問題,再者就是裝了這套後,如 syntax兄所言,把gdipapi.dll rename 再執行,我透過這套工具幫我Debug很多之前沒有發現的錯誤!
===================引 用 syntax 文 章=================== 你可以將電腦裡的 gdipapi.dll 移除、改名 然後使用 delphi 執行,這樣一定會出錯,但是是由整合環境去執行的,所以有機會的話會跳到出錯的程式碼附近, 這樣可以提高你找到東西的機率 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |