Pasando la estructura del vector entre C ++ y C #

Tengo c ++ código no administrado al que quiero acceder desde c #. Así que seguí algunos tutoriales y construí una DLL para mi proyecto (solo una clase por cierto). Ahora quiero usarlo desde c #, y estoy usando p / invoke de la siguiente manera.

mi pregunta es: ¿es posible marcar mi punto de Windows para que pueda pasarlo como un vector a mi código c ++? Puedo cambiar todo el código (excepto el punto qwindows, pero puedo hacer mi propio punto). ¿Hay una solución donde no tengo que crear un contenedor C? Estaba siguiendo esta pregunta:¿Cómo llamar a una función de C ++ no administrada con un std :: vector <> :: iterator como parámetro de C #?

muchas gracias 1 ps, encontré una "solución" pero no puedo verlahttp://www.experts-exchange.com/Programming/Languages/C_Sharp/Q_21461195.html

do#

using Point = System.Windows.Point;

class CPlusPlusWrapper
{

    [DllImport("EmotionsDLL.dll", EntryPoint = "calibrate_to_file")]
    static extern int calibrate_to_file(vector<points> pontos);//marshall here

    [DllImport("EmotionsDLL.dll", EntryPoint = "calibration_neutral")]
    static extern int calibration_neutral();
    /// <summary>
    /// wraps c++ project into c#
    /// </summary>

    public void calibrate_to_file() { 

}

encabezado dll

namespace EMOTIONSDLL
{
    struct points{
        double x;
        double y;
        double z;
    };

    #define db at<double>

    class DLLDIR EMOTIONS
    {
    public:

        EMOTIONS();

        CvERTrees *  Rtree ;


        vector<points> mapear_kinect_porto(vector<points> pontos);

        void calibrate_to_file(vector<points> pontos);

        int calibration_neutral();

        int EmotionsRecognition();
    };
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta