У меня есть библиотека, функциональность которой я хочу в конечном итоге открыть для .NET. Метод, который я хочу раскрыть, имеет следующую подпись:
void DoSomething(std::list<SomeStruct>& someList);
Переменная someList
заполняется DoSomething
.
Я уже знаю, как экспортировать из библиотеки. Мой главный вопрос - как будет выглядеть интерфейс для .NET для этой функции? Я бы предположил, что std::list
- плохая идея, если я хочу использовать C # с P / Invokes.
Какие еще есть варианты? Как вызывающая сторона, я не буду знать размер буфера, который я должен передать заранее. Кроме того, как вызывающая сторона, я бы предпочел не делать многократные вызовы функции с небольшими буферами фиксированного размера и не хотел бы передавать в очень большой буфер.
Какая лучшая практика для этого случая?