我需要創建一個更新應用程序的插件。如何在Windows/Delphi中編寫插件?
看,我有一個主機應用程序,但可能我會用更多的功能進行更新。我在使用Delphi 7的Windows中工作。
基本上,「我的插件」應該爲主機應用程序添加2或3個新功能。
我該如何編寫一個插件,在主應用程序中插入新代碼(新函數)而無需重新編譯它?
注意:我對我的英語感到抱歉。我的自然語言是西班牙語。
謝謝。
我需要創建一個更新應用程序的插件。如何在Windows/Delphi中編寫插件?
看,我有一個主機應用程序,但可能我會用更多的功能進行更新。我在使用Delphi 7的Windows中工作。
基本上,「我的插件」應該爲主機應用程序添加2或3個新功能。
我該如何編寫一個插件,在主應用程序中插入新代碼(新函數)而無需重新編譯它?
注意:我對我的英語感到抱歉。我的自然語言是西班牙語。
謝謝。
Here you can find an article解釋如何使用插件製作應用程序。 您必須使用動態包和RTTI。
它包括第一個原型的代碼。
關於我的壞英語的問候和藉口。 P.D:這篇文章用西班牙文寫成。
有a number of Delphi Plugin Frameworks,商業以及開源。這絕對適合您的需求(和預算)。
工作得很好的一種方法是爲插件創建COM對象。這種方法的優點是插件可以用除Delphi之外的其他語言開發(儘管Delphi中的COM開發比其他任何語言都要簡單)。除非您的插件界面發生變化,否則COM插件將不需要重新編譯以匹配宿主應用程序的當前版本。
我在一個商業產品中實現了一個成功的基於COM的插件架構,並且在Delphi 5中開發了幾個根本不需要重新編譯的插件。即使我的應用程序現在是針對Delphi 2007/2009進行編譯的,它們仍然可以運行。
對於我的基於插件的工作,我使用了JVCL中的JvPlugin框架。在JVCL安裝中,\ examples \ JvPlugin文件夾中,您可以找到幾個示例來展示如何嚮應用程序添加新功能,包括向表單的菜單欄中添加新的菜單項。
我個人使用Remobjects的Hydra。我允許我混合使用本機和.NET插件。
重複http://stackoverflow.com/questions/365968/how-best-to-add-plugin-capability-to-a-delphi-program。也可以添加重複的答案。 – mghie