Wie rufe ich eine nicht verwaltete C ++ - Funktion mit einem std :: vector als Parameter aus C # auf?
Ich habe aus Performancegründen ein C # -Frontend und ein C ++ - Backend. Jetzt möchte ich eine C ++ - Funktion wie zum Beispiel aufrufen:
void findNeighbors(Point p, std::vector<Point> &neighbors, double maxDist);
Was ich haben möchte, ist eine C # Wrapper-Funktion wie:
List<Point> FindNeigbors(Point p, double maxDist);
Ich könnte ein flaches Array wie Point [] an die nicht verwaltete C ++ - DLL übergeben, aber das Problem ist, dass ich nicht weiß, wie viel Speicher ich zuweisen soll, da ich nicht weiß, wie viele Elemente die Funktion zurückgibt. .
Gibt es eine elegante Möglichkeit, dies zu handhaben, ohne Probleme mit Speicherlecks zu haben?
Danke für Ihre Hilfe
Benjami