2015-06-04 30 views
0

我有興趣將另一種音頻編程語言(ChucK)的語言集成到我的Delphi項目中。我知道也許這對動態鏈接庫(.DLL)是可能的,但我對此並不熟悉。如何在Delphi中使用其他語言代碼?

有誰知道我如何配置一個項目來讓兩種語言一起工作?

+0

通常你可以找到一些其他經驗豐富的Delphi用戶用Delphi編寫的包裝器。總是先谷歌他們。 – Tim3880

+0

你能告訴我什麼是包裝?我是這些概念的新手 – Juanig

+0

某些類或函數/過程爲您提供在Delphi中使用這些DLL的接口。 – Tim3880

回答

3

快速瀏覽一下ChucK documentation提出了三種可能的方法,都是由於ChucK既是語言也是運行用該語言編寫的程序的虛擬機(VM)的事實引起的。

ChucK是開源的,所以該VM的完整源代碼是可用的,但是用C++編寫。 ChucK可以以此源代碼形式提供,也可以作爲支持平臺的可立即運行的可執行文件。

我無法找到在其他程序中使用的虛擬機的任何DLL版本。這並不是說這樣一個DLL並沒有被其他人開發出來,只是我找不到任何對它的引用,它似乎並不是ChucK本身標準發佈的一部分。

我的確發現了some source code which references a DLL in the context of ChucK但我不完全清楚這是一個使用ChucK還是部分實現的DLL API,允許ChucK本身通過DLL進行模塊化或擴展。

的三個選項我看你面前:

  1. 港查VM德爾福。也就是說,將所有ChucK VM源代碼翻譯成Delphi。這會給你一個完全用Delphi實現的ChucK版本,它能夠運行ChucK程序。

  2. 爲C++中現有的ChucK VM源代碼實現一個DLL API(可能基於或從上面的鏈接開始),使您可以通過調用該DLL來運行ChucK程序,以便由現有的C++運行實施ChucK。

  3. 運行使用ShellExecute(),WinExec()或CreateProcess()等ChucK exe程序的ChucK程序,就像您希望從Delphi程序運行任何其他外部程序一樣。

這些大致以降序排列呈現。也就是說,德爾福(選擇1)的完整端口可能超出您的能力。

根據您的C++和Windows開發技能,可能會在現有的C++代碼(選項2)周圍實現DLL接口。

調用外部程序(選項3)相對比較簡單。

哪種方法適合您取決於您​​的任務性質,目標以及您所涉及領域的信心/技能。

祝你好運。

0

使用開放式聲音控制(OSC),一種簡單的方法可以讓不同的系統相互通話。 ChucK有OSC receivers and senders(搜索「> OSC」),Delphi看起來像它也實現了OSC。

OSC適用於網絡,但您也可以將消息發送到您自己的本地計算機(本地主機)。上面引用的ChucK例子是這樣做的。

這不是一個緊密的集成,但它會得到Delphi-ChucK關係。