2009-10-15 67 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 ::矢量