Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Маршалинг C++ vector в С# List


Автор: xreal 8.2.2013, 16:03
доброго времени суток!

Маршалирую C++ dllку одна из функций которой возвращает vector, как можно передать это в C# и обработать как List.

Спасибо

Автор: DarkDragon 16.3.2013, 06:09
Напрямую интерпретировать С++ vector в .NET List врядли возможно. Есть несколько вариантов:

1. Использовать C++/CLI, написать функцию:
Код

List<int> ^ FromVector(const std::vector<int> * pVec)
{
    List<int> ^ tl = gcnew List<int>();
    std::vector<int>::const_iterator it;

    for(it = pVec->begin(); it != pVec->end(); it++)
        tl->Add((*it));

    return tl;
}


2. Обойтись без CLI, Использовав функции вида:
Код

vector<int> vec;
...
unsigned int MaxElem(){ return vec.size(); }
int GetElem(unsigned int index){ return vec[index]; }

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)