我正在一個delphi IDE專家,現在爲了避免依賴關係問題,我在想重建這個專家作爲一個DLL專家,正如其中一個建議answers,現在我的專家(編譯爲bpl)訪問Screen
和Application
全局變量(Delphi IDE的實例),所以我想知道如果我編譯我的專家作爲一個DLL我仍然可以訪問這些變量,我也想知道which are the main differences between a bpl delphi expert and a dll delphi expert?
bpl delphi專家和dll delphi專家之間的差異
4
A
回答
5
我應該將我的嚮導編譯爲DLL還是包?無需重新啓動 IDE(因此更容易調試),但是它們可以在IDE中創建單位命名衝突 ,從而使包更容易加載和卸載 。 命名嚮導的單元與另一個加載的設計時包中的單元名稱 匹配時發生衝突。在這種情況下, 這兩個軟件包不能同時加載到 。建議的解決方法 將前綴爲「唯一」前綴的所有單位名稱 。例如,GExperts的 使用「GX_」作爲其單位的名稱前綴 。
從this約OTA非常好的來源:GExperts
1
當你訪問一個全局變量時,那些全局變量對你的DLL來說是全局的,而不是全局的BDS.exe。我不確定,但我認爲你的DLL會有自己的Screen和Application全局變量,如果你鏈接了Forms和VCL的核心。
那些屬於IDE本身的東西是通過Open Tools Api(OTA)訪問的。我相信你通常不會在IDE和專家之間共享任何對象,並且如果你想這樣做,那將是有問題的。任何你所做的繞過OTA的事情都會容易以奇怪的方式突破,特別是在未來版本的IDE中。
依賴問題當然是不使用基於BPL的包的一個重要原因,但我認爲更重要的原因是保持工具內部和IDE內部之間的完全分離。
請記住,DLL目標,如可執行目標,是靜態鏈接的。這是差異的核心。如果您的專家提供的功能僅使用合法的公用文檔OTA接口,那麼轉移到DLL應該沒有問題。如果您使用BPL可能的後門黑客,那麼我無法進一步爲您提供建議。
相關問題
- 1. 如何在delphi中使用FastMM專家(dll)
- 2. 如何從delphi IDE專家中枚舉IDE的形式
- 3. 的專家
- 4. 創建一個簡單的Delphi IDE專家
- 5. 混合專家
- 6. mysql查詢專家?
- 7. 使用Drools專家開發專家系統的想法
- 8. 如何通過專家策略中的專家授權(Rails)
- 9. 剪輯家庭專家系統
- 10. Delphi中的異常和DLL
- 11. TensorFlow上的專家混合
- 12. Perforce - 僅供專家使用?
- 13. 幫助期待/ ExpectJ專家
- 14. 專家系統引擎
- 15. 如何成爲MSIL專家?
- 16. Sharepoint 2010獨家專欄?
- 17. 在Lambda表達式專家
- 18. 專家系統算法
- 19. prolog專家系統很難
- 20. 吉斯專家問題
- 21. 寫程序專家系統?
- 22. 開源專家系統
- 23. 我必須使用什麼windows註冊表鍵來安裝delphi專家?
- 24. Android和Jess專家系統集成
- 25. Delphi - BPL中的unmangle名稱
- 26. 約Delphi和DLL
- 27. Delphi XE找不到BPL
- 28. 如何從IDE專家更改Delphi調試器的「通知語言異常標誌」
- 29. htaccess的301希望專家htaccess的
- 30. 成爲MySQL專家的最快方法?
一個DLL可以運行包將建成了。 – 2011-05-19 20:07:19