編譯執行時出現Eexternal exception EEFFACE |
尚未結案
|
GGL
資深會員 發表:104 回覆:600 積分:335 註冊:2006-11-05 發送簡訊給我 |
使用BCB 2010
我先敘述我程式的內容 我利用動態的方式產生TPopupMenu,部分code如下: [code cpp] for(int i = 0 ; i < 10; i ) { TMenuItem *menu=new TMenuItem(this); char sc=65 i; menu->Caption=ExePath[i] "(&" sc ")"; //ExePath[i]為外部檔案的路徑 menu->Tag=i; PopupMenu_Dynamic->Items->Add(menu); menu->OnClick = PopupMenuItemsClick; } [/code] 我在PopupMenu上顯示檔案的路徑,點選Item就會執行該程式 [code cpp] if(ClickedItem->Tag < iMenuCount) { if(Parameter[ClickedItem->Tag] != "") { //方法一: ShellExecute(Handle,"open",ExePath[ClickedItem->Tag].c_str(),Parameter[ClickedItem->Tag].c_str(),NULL,SW_SHOWNORMAL); //方法二: AnsiString ex; ex = ExePath[ClickedItem->Tag] " " Parameter[ClickedItem->Tag]; WinExec(ex.c_str(), SW_SHOW); } } [/code] 一開始我使用ShellExecute的方式,只在是在編譯階段的執行(BCB上直接按F9),並點選任一個Item就會出現Eexternal exception EEFFACE的錯誤,而且BCB整個當掉,必須用工作管理員強制關閉 但是,我單獨執行這個程式,一切功能都正常,不會出現任何錯誤 因為我覺得是ShellExecute的問題,我就找了另一個替代的API - WinExec 想不到用WinExec就完全正常 雖然問題暫時解決,我還是想知道是什麼原因導致這項例外的產生? 謝謝各位 |
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
Please try
ShellExecuteL"open",ExePath[ClickedItem->Tag].c_str(),Parameter[ClickedItem->Tag].c_str(),NULL,SW_SHOWNORMAL); i just guess this may cause a problem, though i do not have bcb 2010.
------
蕭沖 --All ideas are worthless unless implemented-- C++ Builder Delphi Taiwan G+ 社群 http://bit.ly/cbtaiwan |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |