將dll以及package包入project後Run程式出現exception |
|
Littleasss
一般會員 發表:12 回覆:6 積分:3 註冊:2006-08-17 發送簡訊給我 |
本來project還是dymanic的run,且可以run。但是現在將package和Dymanic RTL 取消之後run就出現錯誤了。有看了很多exception的文章,也看了BCB的help還是不知道要怎麼解決,因為不知道try catch要加在哪裡???也不知道為什麼包裝起來後就會出現錯誤??? 錯誤訊息如下:Project XXX.exe raised exception class EAccessViolation with message 'Access violation at address 004C47F1.Read of address 00000000'.Process stopped.Use Step or Run to continue.
|
herbert2
尊榮會員 發表:58 回覆:640 積分:894 註冊:2004-04-16 發送簡訊給我 |
EAccessViolation 一直是 BCB 令人困擾的問題. 依經驗, 多為 Component 或 TStrings 或 Variable 或 Array 在執行時是 Not Exist 所引起, 故要注意 Trace 該 Object 是 Public, Private 或 Local, 甚至如 PageControl 之 OwnerDraw 若為 true, 而其 OnDrawTab() 所用到的 Object 在 Form->OnClose() 若已不存在, 也會引起. 因 OnClose() 也會觸發 OnDrawTab() , 故除了您自行小心檢查, 很難有簡易的方法 Debud.
|
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
請問package是自己設計的嗎? 還是第三元件? 哪一個?
若是自己設計或是有改過source code,是否重新compile package,然後再compile主程式一次。 ===================引 用 文 章=================== 本來project還是dymanic的run,且可以run。但是現在將package和Dymanic RTL 取消之後run就出現錯誤了。有看了很多exception的文章,也看了BCB的help還是不知道要怎麼解決,因為不知道try catch要加在哪裡???也不知道為什麼包裝起來後就會出現錯誤??? 錯誤訊息如下:Project XXX.exe raised exception class EAccessViolation with message 'Access violation at address 004C47F1.Read of address 00000000'.Process stopped.Use Step or Run to continue.
------
蕭沖 --All ideas are worthless unless implemented-- C++ Builder Delphi Taiwan G+ 社群 http://bit.ly/cbtaiwan |
Littleasss
一般會員 發表:12 回覆:6 積分:3 註冊:2006-08-17 發送簡訊給我 |
PageControl和From和一些開檔讀檔的Dialog都是我直接拉出來的,其他的TabSheet、BitBtn還有Memo都是我自己new出來的。其實我也在想會不會是這個問題。因為好像都是用BCB拉出來的就不會有錯。
===================引 用 文 章=================== 請問package是自己設計的嗎? 還是第三元件? 哪一個? 若是自己設計或是有改過source code,是否重新compile package,然後再compile主程式一次。 ===================引 用 文 章=================== 本來project還是dymanic的run,且可以run。但是現在將package和Dymanic RTL 取消之後run就出現錯誤了。有看了很多exception的文章,也看了BCB的help還是不知道要怎麼解決,因為不知道try catch要加在哪裡???也不知道為什麼包裝起來後就會出現錯誤??? 錯誤訊息如下:Project XXX.exe raised exception class EAccessViolation with message 'Access violation at address 004C47F1.Read of address 00000000'.Process stopped.Use Step or Run to continue. |
Littleasss
一般會員 發表:12 回覆:6 積分:3 註冊:2006-08-17 發送簡訊給我 |
找到問題所在了!原來是ifstream有問題。這也是個很奇怪的問題,我在讀取背景圖是.jpeg的檔的時候也遇到降的問題。比如我要設定一個BitBtn button的背景button->Glyph->LoadFromFile("button.bmp"); 如果改成load button.jpg就會有問題,除非多include
|
Suzuna
一般會員 發表:25 回覆:57 積分:16 註冊:2004-05-11 發送簡訊給我 |
您好,我最近也遇到跟您相同的問題!原本參照前面的文章<就是您也參照的那篇>,但是我怎麼弄都是會出現跟您一樣的錯誤!後來想到我的exe檔與DLL也都有使用ofstream,將他拿掉之後果然就可以執行了! 我很納悶為什麼DEBUG模式就可但是這時候就不行?因為有時候會想輸出一些東西到文件,難道一定得用其他方法才能輸出嗎@@?(P.S另外想知道文章要怎麼換行,怎麼按SPACE都沒用= =)
===================引 用 文 章=================== 找到問題所在了!原來是ifstream有問題。這也是個很奇怪的問題,我在讀取背景圖是.jpeg的檔的時候也遇到降的問題。比如我要設定一個BitBtn button的背景button->Glyph->LoadFromFile("button.bmp"); 如果改成load button.jpg就會有問題,除非多include |
skybow
一般會員 發表:10 回覆:10 積分:4 註冊:2004-04-30 發送簡訊給我 |
小弟最近也遇到相同問題! 剛剛爬文才發現這篇! 只要在程式中有宣告ofstream變數, 而且把Linker和Packages頁面中的那兩個打勾選項取消 (將DLL包入執行檔,方便在其他電腦執行) 這樣按Alt F9是沒問題,但是按F9執行時就會出現錯誤訊息! 如下圖: http://www.badongo.com/pic/4246556 但是只要把宣告ofstream變數那行蓋掉,就沒有問題! 如此一來就無法使用ofstream來輸出資料到檔案! 如何是好? 由於這篇文章沒有確定的答案,可以請高手再次解答嗎? 謝謝!
編輯記錄
skybow 重新編輯於 2008-08-18 13:01:35, 註解 無‧
|
skybow
一般會員 發表:10 回覆:10 積分:4 註冊:2004-04-30 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |