2013-10-23 62 views
2

我現在主要是C++ Builder,並且已經構建了(用於我自己使用的)一組功能強大且有用的類,它們圍繞第三方數據庫應用程序。我有一個使用Delphi的客戶。我想創建一個包/活動X對象/ DLL /暴露一些他可以在Delphi中使用的組件或類來利用我的代碼。我正在使用XE2,他是最新的(XE5?)。如果有幫助,我可以更新。所討論的數據庫按時間序列存儲數字數據 - 所以我主要在大型數組中移動。什麼是將C++ Builder代碼暴露給Delphi的最好方法

最好的策略是什麼?當然,我可以用C風格的導出函數構建一個DLL,但我想知道是否有任何酷炫的Embarcadero-ey工具可以用來使它更加優雅。我知道使用C++ Builder編寫的組件不能在Delphi中使用,但是包怎麼樣?該文件含糊不清。

我很難找到有關此主題的信息,因爲所有關於Delphi/C++ Builder互操作性的搜索都假定爲另一個方向。

+0

AFAICT,在Delphi中無法使用Builder類(不論是否爲組件)。 Builder對象模型與Delphi中使用的完全不同,並且從來沒有Delphi包裝器。 (我不確定會有什麼,因爲C++支持Delphi不支持的多重繼承功能)。您找到信息的問題可能是因爲它無法完成。除了提供平面封裝的DLL之外,ActiveX將是我能想到的唯一可行的替代方案。 Rudy Velthuis(應該可以通過Google找到)在他的網站上寫了幾篇關於這方面的文章。 –

+2

找到它了:http://rvelthuis.de/articles/articles-cppobjs.html –

+0

謝謝,這是非常有幫助的。接口似乎是要走的路。 – marcp

回答

2

AFAICT,在Delphi中不可能直接使用Builder類(不管是否使用組件)。

Builder對象模型與Delphi中使用的模型有所不同,並且從來沒有Delphi包裝器。 (我不確定是否可以,因爲C++支持Delphi不支持的功能,如Delphi不支持的功能)

您正在查找信息的問題可能是因爲它無法完成。除了提供平面封裝的DLL之外,ActiveX將是我能想到的唯一可行的替代方案。 Rudy Velthuis(也是參與SO的TeamB成員)撰寫了一篇關於這方面的文章,他展示了兩種技術 - 平面封裝和COM接口 - 以及如何應用這些技術的一個很好的解釋。你可以找到他的帖子here

相關問題