線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3677
推到 Plurk!
推到 Facebook!

如何找出delphi何處引用gdiplus.dll

尚未結案
AnnieLu
一般會員


發表:3
回覆:4
積分:1
註冊:2007-07-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-08-27 09:23:06 IP:61.230.xxx.xxx 訂閱
各位前輩:
之前我修改前廠商寫的一個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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-08-27 12:15:00 IP:61.62.xxx.xxx 訂閱
Search Key Word 
GDIPAPI
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-08-27 12:32:07 IP:61.64.xxx.xxx 訂閱
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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-08-27 13:56:50 IP:203.74.xxx.xxx 訂閱
你好
GdiplusShutdown 只有在 GDIPAPI.pas 裡有用到,但我程式中已將此宣告 disable,照理說應該不會再去引用到,可是我去測試還是會去引用到 gdiplus.dll ,好奇怪喔,不知道會不會是被其它安裝的 3rd-party 元件給引用的....
===================引 用 syntax 文 章===================
1. 你必須要有原始碼
2. 你已經說出答案 search 「GdiplusShutdown」
3. 做你要做的處理,看是要重新建立物件,還是要修改呼叫行為
dll 的地方呢...><
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-08-27 14:14:32 IP:61.64.xxx.xxx 訂閱
你可以將電腦裡的 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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-10-07 11:51:54 IP:61.67.xxx.xxx 未訂閱
不小心看到本篇,建議你到 http://www.eurekalog.com/ 下載它的試用版,這套可以指出第一個發生錯誤時的程式碼位置(但有些狀況並不會發生), 或許可以幫助你找問題,再者就是裝了這套後,如 syntax兄所言,把gdipapi.dll rename 再執行,我透過這套工具幫我Debug很多之前沒有發現的錯誤!
===================引 用 syntax 文 章===================
你可以將電腦裡的 gdipapi.dll 移除、改名
然後使用 delphi 執行,這樣一定會出錯,但是是由整合環境去執行的,所以有機會的話會跳到出錯的程式碼附近,
這樣可以提高你找到東西的機率
編輯記錄
P.D. 重新編輯於 2007-10-07 11:52:32, 註解 無‧
P.D. 重新編輯於 2007-10-07 11:53:09, 註解 無‧
系統時間:2024-11-24 13:29:42
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!