如何将'cli :: array <type> ^'转换为'CDWordArray&amp;'</type>

时间:2011-03-29 13:58:55

标签: visual-c++ mfc c++-cli interop mixed-mode

我的MFC代码有一个功能:

SelectItems(CDWordArray & awTop);

我通过另一个CPP项目调用它,如:

array< unsigned int >^ selectedItems;  
DWORD cnt = m_handle->SelectItems(selectedItems);

但我得到错误

can not convert parameter 1 from 'cli::array<Type>^' to 'CDWordArray &'

1 个答案:

答案 0 :(得分:3)

CDWordArray不太可能与托管数组兼容,CObject基类使其变得模糊。您必须创建它的新实例并复制数组元素。这很昂贵,考虑重构代码,以便您可以使用pin_ptr<>类。 MSDN HowTo文章is here。不要施放你从pin_ptr<>得到的指针,这不可能有用。