我有一個VCL Forms應用程序,其中包含對我創建的BPL文件的引用。我將框架組件的單元名稱從BPL添加到VCL應用程序主窗口的uses子句中。該應用程序構建得很好,但是當我運行它時,它會在到達項目文件中的第一行「Application.Initialize」之前死亡。如果我從uses子句註釋出框架的單元,應用程序啓動並運行良好。將應用程序轉換爲BPL,現在應用程序死在Application.Initialize
應用程序啓動時可能導致致命錯誤的原因是什麼?
我猜在啓動時加載BPL文件時出現問題,但我無法找到問題。謝謝。
更多信息... VCL應用程序在XE5中,我試圖將它轉換爲BPL。整個應用程序駐留在一個TFrame控件中,其中包含許多其他按鈕和框架,可以訪問應用程序的所有基礎功能。然後將這個「主框架」放置在除少數菜單項之外爲空的應用程序主表單中。原來的應用程序構建並運行良好。
我創建了一個新的BPL項目,並添加了這個「主框架」組件,努力創建一個基本上是我的整個應用程序的BPL包,這可以像以前一樣用於一個普通的獨立exe應用程序,或者添加到RemObjects Hydra插件模塊中,並最終嵌入到C#應用程序中。帶有單個「主框架」組件的BPL項目可以毫無錯誤地構建。
然後,我創建了一個帶有一個空主表單的新VCL Forms應用程序,並設置了項目的「Options-> Packages-> Run-time Packages」以包含我的新BPL,並將「Link with run時間包「選項。我在主窗體的uses子句中添加了「主框架」單元,並且所有內容都沒有錯誤地構建。
問題:當我從XE5運行應用程序時,它似乎開始正常啓動,但它在到達第一行代碼「Application.Initialize;」之前就會死亡。在項目文件中。請注意,我還沒有編寫任何代碼來創建BPL中「主框架」的實例。我只是將它的單元添加到uses子句中。沒有顯示錯誤消息,也沒有任何消息發佈到XE5的「生成」或「輸出」窗口。如果我從uses子句註釋掉「主框架」單元,那麼應用程序運行良好,並顯示空的主窗口。
注意:該應用程序使用JVcl,NativeXml,TsiLang,ZipForge,& FastReports。
是。聽起來像是無法找到bpl。你爲什麼認爲應該找到它? –
需要從系統路徑或應用程序文件夾中訪問BPL文件。您應該確保BPL文件位於這兩個位置之一中。 – Graymatter
@Graymatter從技術上講,它們使用DLL搜索順序進行搜索:http://msdn.microsoft.com/en-us/library/windows/desktop/ms682586.aspx –