有必要CARRAY实例传递给从我的应用相关的外部DLL写在C++ Builder中。有没有办法从C++ Builder中使用MFC?如果是,如何?使用CARRAY类
附录:这个DLL不是我的,我不能改变它。
有必要CARRAY实例传递给从我的应用相关的外部DLL写在C++ Builder中。有没有办法从C++ Builder中使用MFC?如果是,如何?使用CARRAY类
附录:这个DLL不是我的,我不能改变它。
C++ Builder不支持MFC,因为Microsoft和Borland C++运行时不兼容。
参见http://www.parashift.com/c++-faq-lite/compiler-dependencies.html#faq-38.9
因此,您很可能会发现外部DLL不能在C++ Builder中使用。 – atomice 2009-10-15 13:46:07
我不知道C++ Builder是否有任何类型的MFC支持(也许有第三方开源代码)。
由于CArray
有很少的方法,一种可能的解决方案是为它编写一个包装并将接口暴露给dll。
你可以使用一个std ::向量来代替。功能几乎相同。
此DLL不是我的,我无法更改它的界面。它预计CArray和我无能为力。 – 2009-10-15 14:39:06
CARRAY非常类似于一个std ::向量,所述数据是在存储器contigous。
最简单的(唯一安全的)方法是将指针传递给实际数据和大小参数。 见CArray::getData
你单独的DLL shoudln't改变大小 - 如果你需要做到这一点使用std ::矢量
此外,CARRAY是可怕的。改用'std :: vector'。 – 2013-08-24 00:00:45
我无法更改那个需要CArray实例的DLL。不是我的。 – 2013-09-08 11:03:48