2016-01-25 78 views
1

在C++ DLL我有這樣的代碼:地圖C++結構的std ::向量C#

struct Bar 
{ 
    std::vector<double> a; 
    std::vector<double> b; 
} 

std::vector<Bar> t; 

我該如何映射t是從C#入店。

例如,我已在C++ DLL

__declspec(dllexport) void ReleaseNet(std::vector<Bar> t) 
{ 
    someObject.setData(t); 
}; 

創建此而從C#我需要將數據傳遞給該方法。

回答

1

我不知道微軟是否有某種對STL容器,但映射通常,使用API​​邊界上STL是一個很大的「不,不」,因爲你的載體類可能有對對方不同的大小。 (一個例子是調試中的visual studio爲調試目的添加一些數據到結構)

如果你想要映射的只是一個向量,那麼一個確定的事情是一個向量是連續的內存塊。所以你可以把它當作一個數組來對待。

Passing vector struct between C++ and C#這給你更多的洞察力。