Como chamar uma função C ++ não gerenciada com um std :: vector como parâmetro de C #?
Eu tenho um front end em C # e um back-end em C ++ por motivos de desempenho. Agora eu gostaria de chamar uma função C ++ como por exemplo:
void findNeighbors(Point p, std::vector<Point> &neighbors, double maxDist);
O que eu gostaria de ter é uma função de wrapper em C # como:
List<Point> FindNeigbors(Point p, double maxDist);
Eu poderia passar uma matriz plana como Point [] para a dll C ++ não gerenciada, mas o problema é que não sei quanta memória alocar, porque não sei o número de elementos que a função retornará ...
Existe uma maneira elegante de lidar com isso sem ter problemas com vazamentos de memória?
Obrigado pela ajuda!
Benjamin