2009-09-30 55 views

回答

11

您無法導入類。您只能導入功能。 Rudy Velthuis has written at length on the topic.雖然你不能直接使用導出的C++類,他描述了幾個技術來達到同樣的效果:

  • 「拼合」的對象,因此主叫方沒有對象了,只是一個傳遞給DLL的指針以及包含對象方法的一系列函數的其他參數。編寫包裝器非常簡單,雖然它可能很乏味。

  • 使用純虛擬類。 Windows C++編譯器和Delphi通常具有相同的VMT佈局,因此如果C++類可以用一系列純虛擬方法來描述,則可以創建一個等效的Delphi聲明,使用由DLL返回的對象指針進行一些類型轉換,並繼續。

本文給出了兩種方式的完整示例。

4

就我所知在Delphi中,你不能使用從DLL導出的C++類;你可以使用C函數,你可以將COM類導入到Delphi中。