Passando vector struct entre C ++ e C #

Eu tenho código não gerenciado c ++ que eu quero acessar do c #. Então eu segui alguns tutoriais e criei uma dll para o meu projeto (apenas uma classe btw). Agora eu quero usá-lo a partir de c #, e estou usando p / invoke da seguinte forma.

minha pergunta é: é possível organizar meu ponto de janelas para que eu possa passá-lo como um vetor no meu código c + +? Eu posso mudar todo o código (exceto o ponto qwindows, mas eu posso fazer o meu próprio ponto). Existe uma solução onde eu não tenho que criar um invólucro c? Eu estava seguindo essa pergunta:Como chamar uma função C ++ não gerenciada com um std :: vector <> :: iterator como parâmetro de c #?

many thanks1 ps, eu encontrei uma "solução", mas eu não posso ver issohttp://www.experts-exchange.com/Programming/Languages/C_Sharp/Q_21461195.html

c #

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() { 

}

cabeçalho 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();
    };
}

questionAnswers(2)

yourAnswerToTheQuestion