2013-04-08 48 views
1

有沒有使用dwscript作爲Delphi應用程序的插件框架的方法?例如,我在dwscript中添加了一個簡單的方法,該方法增加了數字,這需要從託管應用程序中調用。使用dwscript作爲Delphi應用程序的插件框架

一種解決方案是將dwscript作爲文本文件保留並在運行時加載文本文件並從主機調用該方法。有沒有辦法創建一個包含dwscript的dll,並在運行時加載dll,然後調用該方法?

回答

1

應該沒有問題,但你應該先來看看如何管理內部德爾福DLL插件,因爲... ethere有一些限制:

檢查delphi.about.com有一些教程。 http://delphi.about.com/od/windowsshellapi/a/dll_basics.htm

你會首先發現的問題之一是你可能有類的問題,因爲一個DLL就像一個獨立的應用程序,所以它創建自己的類表。所以對於主機應用程序,包含在dll中的TDWScript類包含它所包含的類(主機)。

有一些方法可以acomplish這一點,那要看你有什麼需求:

1) 例如,您可以調用DLL的方法,而不是直接調用TDWscript類,只是打電話一樣「ExecuteScript的方法( afilename)」

2)如果你的插件需要與主機應用程序是MROE複雜的相互作用,因爲你必須囑咐通信協議,雙方(主機和插件可以互動)

的選項是: a)使用接口而不是clas直接。 b)使用內存管理器,如sharemem(delphi附帶)或fastMM4(開放源代碼),它應該包含在bot DLL和APP中,這樣它們將共享相同的內存管理器和相同的類表。

如果您不熟悉插件,請檢查JEDI VCl組件,他們有一個JvPlugin和JvPluginManager,它是一個簡單但功能強大的框架,可以開始創建自己的Plugin框架。有一些演示如何管理插件,使用DLL方式創建它們。這對你想要的可能是有用的。並演示如何使用接口而不是直接使用類。

2

DWS不會創建DLL。它將一個pascal風格的源代碼編譯爲中間文件以供執行,以便您可以根據需要將文本文件部署爲插件。有關回調DWS源代碼下載並在DWS站點的tools目錄中運行IDE演示的示例,此示例有一個「執行過程」菜單選項和簡單的源代碼來查看它是如何完成的。

+0

謝謝,這很有用。 – rhody 2013-04-08 19:52:14