Я нашел похожие вопросы, но никто из них не работал для моей ситуации, поэтому я спрашиваю себя.Как передать вектор как параметр в библиотеку C++ из CLI/C++ Wrapper?
Я хочу использовать библиотечную функцию, которая принимает указатель на std :: vector и заполняет его данными.
У меня уже установлен C++/CLI Wrapper. В настоящее время я пытаюсь создать экземпляр вектора в обертке,
private:
std::vector<int>* outputVector
и в конструкторе, я его экземпляр:
outputVector = new std::vector<int>();
Теперь в методе обертку, который вызывает C++ функции библиотеки:
m_pUnmanagedTPRTreeClass->GetInRegion(..., &outputVector)
Я пропустил другие параметры, потому что они не имеют значения для этого случая. Я уже могу использовать другие функции библиотеки, и они работают без проблем. Я просто не могу передать указатель на std :: vector.
С кодом, как это, я получаю сообщение об ошибке:
error C2664: 'TPSimpleRTree<CT,T>::GetInRegion' : cannot convert parameter 3 from 'cli::interior_ptr<Type>' to 'std::vector<_Ty> &'
Я попытался удалить «&», так как я не большой на C++, и я не уверен, как правильно использовать указатели. Тогда ошибка становится:
error C2664: 'TPSimpleRTree<CT,T>::GetInRegion' : cannot convert parameter 3 from 'std::vector<_Ty> *' to 'std::vector<_Ty> &'
EDIT: Я попытался заменить "&" на "*", он не работает, я получаю ошибку:
не может конвертировать из «станд :: вектор < _Ty>»на 'станд :: вектор < _Ty> &'
сигнатура функции C++ для вектора так:
GetInRegion(..., std::vector<T*>& a_objects)
Вы действительно хотите передать адрес указателя вместо указателя? Что такое подпись «GetInRegion»? Пожалуйста, напишите [Минимальный, Полный, Подтверждаемый пример] (https://stackoverflow.com/help/mcve). – robert
Вам не нужно «вводить новый» вектор вообще, просто объявите его перед использованием в вызове функции, передайте адрес вектора (не указателя), а затем выведите данные в коллекцию .Net после вызова функции , – crashmstr
... царапина это! 'GetInRegion' берет * reference * в' vector' 'T *', поэтому вы получили все это назад. – crashmstr