2009-10-15 63 views
0

有必要CARRAY實例傳遞給從我的應用相關的外部DLL寫在C++ Builder中。有沒有辦法從C++ Builder中使用MFC?如果是,如何?使用CARRAY類

附錄:這個DLL不是我的,我不能改變它。

+0

此外,CARRAY是可怕的。改用'std :: vector'。 – 2013-08-24 00:00:45

+0

我無法更改那個需要CArray實例的DLL。不是我的。 – 2013-09-08 11:03:48

回答

0

我不知道C++ Builder是否有任何類型的MFC支持(也許有第三方開源代碼)。

由於CArray有很少的方法,一種可能的解決方案是爲它編寫一個包裝並將接口暴露給dll。

見例如adapter pattern.

0

你可以使用一個std ::向量來代替。功能幾乎相同。

+0

此DLL不是我的,我無法更改它的界面。它預計CArray和我無能爲力。 – 2009-10-15 14:39:06

0

CARRAY非常類似於一個std ::向量,所述數據是在存儲器contigous。
最簡單的(唯一安全的)方法是將指針傳遞給實際數據和大小參數。 見CArray::getData

你單獨的DLL shoudln't改變大小 - 如果你需要做到這一點使用std ::矢量