ползване на C++ class (unmanaged, native code) в .NET (C# managed code)

Здравейте,

опитвам се да свържа трите и да ползвам С++ native code клас, но ми гърми решението като го пусна на виртуална машина. 

Предполагам не съм разписала много добре кода на С++ и прехода в Wrapper-a (Garbage Collector-a не се шегува). Предполагам е от това. Някакви идеи?

Ето какво правя:

Създавам в C# масив int[] myArray = new int[numberElements];

Инициализирам обект от Wrapper класа с пойнтер към създадения масив:

Core.Wrapper controlCpp = new Core.Wrapper(pmyArray, numberElements);

той се създава с конструктор, който взема същия пойнтер към паметта където е масива, и на свой ред създава пойнтер към CoreNativeClass натив обект , със същия пойнтер в конструктора: ptrNative = new CoreNativeClass(pInt, arraySize);

ето така:

CoreNativeClass::CoreNativeClass(int * pInt, int arrsize)

{

       vector<int> v;

       for (int i = 0; i < 4; i++)

       {

             v.push_back(0);

       }     

       v[0] = SetFoo_1();

       v[1] = SetFoo_2();

       v[2] = SetFoo_3();

       v[3] = SetFoo_4();

 

       this->vec = v;

 

       pInt[0] = vec[0];

       pInt[1] = vec[1];

       pInt[2] = vec[2];

       pInt[3] = vec[3];

}

Ето ги 3-те solution-a:

 https://github.com/VanyaBenovska/Win32ConsolePrj-WrapperCppCLR-C-WPF.NET-Framework

Поздрави!