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

Dll中有Form使用到TImage,但是呼叫Dll時卻無法正確載入圖片jpg。

 
nady
一般會員


發表:8
回覆:6
積分:2
註冊:2002-11-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-08-09 15:42:39 IP:211.78.xxx.xxx 未訂閱
前輩們 小弟在寫一個程式(A),會用到我自己寫的Dll(B)。 但是這個Dll會顯示一個Form裡頭有兩張圖,一張是bmp另一張是jpg,分別用TImage載入。    程式(A)本身也有兩張圖,一張是bmp另一張也是jpg,同樣也是用TImage載入。再去呼叫Dll(B)顯示Form和圖片,結果發現程式(A)的兩張圖,會少了一張jpg的。 錯誤是"Unknown picture file extension (.jpg)." 但是Dll(B)的兩張圖都會正確顯示,且程式(A)的bmp也可以正確顯示。那為什麼唯獨程式(A)的jpg不能載入呢??    我自己有做一些測試 1.如果程式(A)單獨運行(拿掉Dll(B)的Lib和Dll(B)的函式,就是跟Dll(B)完全無關) 結果:程式(A)的兩張圖都很正常的顯示。 2.如果程式(A)和Dll(B)的Lib一起link,但是不呼叫Dll(B)的函式) 結果:程式(A)的jpg那張圖就會無法顯示。 3.如果程式(A)和Dll(B)的Lib一起link,而且也呼叫Dll(B)的函式) 結果:程式(A)的jpg那張圖就會無法顯示。    所以只要程式(A)將Dll(B)的Lib加進專案,TImage 就會無法顯示jpg,但是可以顯示bmp。    BCB5.0和6.0都會有這個問題。    請前輩們幫我測試看看吧... 因為我不知道怎麼上傳程式,而且像我這樣的程式碼很短,所以我就沒有上傳程式碼了。還請前輩幫忙。    最後我有試出來可以用的方法,但是很不可思議,而且我也不懂,所以不足採信。 結果:只有將程式(A)和Dll(B)在編譯的時候,都要將"Build with Runtime Package"打勾,才可以讓程式(A)和Dll(B)的4張圖片正常顯示。    可是據我所知的"Build with Runtime Package"並無法解釋這個問題,而且這樣對我的程式以後要散佈到別的電腦還是相當不方便。 還請前輩們指導。    之前在別的板上發問過,不過因為沒有附上程式碼,所以可能高手不方便幫我找出問題,在此附上程式,還望各位高手幫助。    謝謝    sincerely  Nady    
justdo
高階會員


發表:2
回覆:359
積分:222
註冊:2004-08-17

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-08-22 09:08:01 IP:221.169.xxx.xxx 未訂閱
反覆測試了幾次 可能的原因在於test的主程式在載入jpg檔的時候發生問題 請改用 TJPGImage 動態的載入 .jpg 檔看看 不要使用 TImage 靜態的載入 .jpg 檔
nady
一般會員


發表:8
回覆:6
積分:2
註冊:2002-11-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-08-22 12:04:19 IP:61.229.xxx.xxx 未訂閱
感謝前輩的協助    不過小弟測試的結果是, 如果在test的程式是採用動態載入dll的方式不要用靜態連結的方式, 程式就可以正確運作。 小弟雖然找出解決的辦法但是還是無法了解原因為何? 可以請前輩們指導解釋嗎? P.S.這會是BCB的bug嗎?
系統時間:2024-05-18 20:30:35
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!