У меня есть библиотеки DLL в C++, он возвращает список, я хочу, чтобы использовать его в моей C# приложение в виде спискаКак я могу объединить список <int>?
[DllImport("TaskLib.dll", SetLastError = true, CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)]
public static extern List<int> GetProcessesID();
public static List<int> GetID()
{
List<int> processes = GetProcessesID();//It is impossible to pack a "return value": The basic types can not be packed
//...
}
'станд :: Список <> и' System .Collections.Generic.List <> 'не похожи на всевозможные способы. Если вы не напишете прокладки C++/CLI, ваш код на C++ должен работать только с точки зрения типов POD - возврат стандартных объектов библиотеки никогда не будет работать. – ildjarn
Противоположный вопрос (сортировка и передача списка с C# на C++) задан здесь [http://stackoverflow.com/q/6532923/960195] и может оказаться полезным. –
Единственный способ, с помощью которого я могу сделать такой маршалинг, - написать промежуточную функцию C++/CLI для выполнения «вручную» преобразования. –