這裏我正在編寫包裝來調用c#項目中的C++函數。在這裏我沒有使用Dllimport方法。我正在尋找C++/CLR方法。使用C++/CLR方法,我們可以直接將Dll添加到C#項目中。調用具有std :: list作爲參數的C++函數
在我的C++/CLR中,我有一個像下面這樣的函數。
int StartScan(std::list<SomeObject*> *DeviceList);
我想打電話從C#此功能。什麼是從C#調用的等效屬性。 如果我們使用P/Invoke方法,我已經嘗試了LinkedList,它是std :: list的等價屬性。
std :: list是在C++中實現定義的。對於不同的編譯器和編譯器版本,它有不同的實現。 C#沒有辦法與PInvoke匹配。甚至不同的C++編譯器和版本也不能匹配彼此的'std :: list'。 – PaulMcKenzie
[如何使用P/Invoke在C#中返回列表]可能的重複(http://stackoverflow.com/questions/31529316/how-to-return-a-list-in-c-sharp-using-p -invoke) –
也有關:http://stackoverflow.com/questions/1579559/marshalling-net-generic-types –