У меня возникли проблемы с установкой способа представления структуры, содержащей указатель на массив шорт в моем управляемом коде. Структура выглядит следующим образом:Маршалинг указателя на массив типов (управляемый C# -> неуправляемый C++)
typedef struct
{
short size;
unsigned short** shortValues;
} UnmanagedStruct;
память «shortValues
» выделяется внутри неуправляемого кода - поэтому даже если это поле просто указатель на массив коротких значений, дополнительный уровень косвенности был добавлен, так что выделенная память также просматривается вызывающим (управляемым кодом). Поле 'size
' представляет количество элементов в массиве. Как я могу представить это в управляемом коде?
Я думал, что передал бы его всего лишь , тогда я не мог понять, как получить доступ к значениям после возврата неуправляемого вызова.
Этот код выглядит точно для меня. Спасибо dtb! Пока я обращаю ваше внимание, могу ли я задать еще один вопрос? Я разместил его в другом потоке: http://stackoverflow.com/questions/1323797/marshaling-pointer-to-an-array-of-strings – Dilip
BTW: лучше обновить свой вопрос, чем опубликовать ответ на свой вопрос. вопрос с новыми деталями. Кроме того, если ответ решает вашу проблему, не забудьте принять его! :) – dtb
@dtb: Я должен быть слепым здесь, но как я могу «принять» ответ? – Dilip