需要将CArray实例从我用C ++ Builder编写的应用程序传递给外部DLL。有没有办法从C ++ Builder中使用MFC?如果是,怎么样?
附录:这个DLL不是我的,我无法改变它。
答案 0 :(得分:3)
C ++ Builder不支持MFC,因为Microsoft和Borland C ++运行时不兼容。
请参阅http://www.parashift.com/c++-faq-lite/compiler-dependencies.html#faq-38.9
答案 1 :(得分:0)
我不知道C ++ Builder是否有任何类型的MFC支持(可能有第三方开源代码)。
由于CArray
的方法很少,一种可能的解决方案是为它编写一个包装器并将接口暴露给dll。
例如参见adapter pattern.
答案 2 :(得分:0)
您可以使用std :: vector代替。功能基本相同。
答案 3 :(得分:0)
CArray与std :: vector非常相似,因为数据在内存中是连续的 最简单(唯一安全)的方法是传递指向实际数据和大小参数的指针。 见CArray::getData
你单独的dll不会改变大小 - 如果你需要这样做使用std :: Vector