Я прочитал и успешно попробовал ответ на Как я могу передать строку Delphi в DLL Prism?, но задался вопросом, можно ли использовать аналогичный метод для передачи массива целых чисел Delphi (статического или динамического) в DLL Prism.
Как передать массив целых чисел Delphi в DLL Prism?
Ответы (2)
Самый простой (без маршалинга) - закодировать массив с помощью BASE16 или BASE64 в строку Unicode и передать строку.
person
Eugene Mayevski 'Callback
schedule
09.09.2010
У меня нет времени писать полный рабочий пример, но вот ключевые моменты для адаптации примера, который вы упомянули в другом вопросе:
объявить тип с длиной вашего буфера
type
[MarshalAs(UnmanagedType.LPArray)]
TBuffer = array[0..-length-]of integer;
и для выполнения операций в буфере не забудьте использовать модификатор "закреплен"
var BufferPointer: ^TBuffer; pinned;
...
BufferPointer := @the_buffer[0];
person
someone
schedule
09.09.2010
Спасибо. Я бесполезен в этом и был бы очень признателен за полный пример, если у кого-то есть время и желание. Ваши минуты сэкономят мне часы. Не в спешке.
- person Warren Stanley; 13.09.2010
UnmanagedType.LPArray
кажется вероятной отправной точкой для расследования. - person Marcelo Cantos   schedule 09.09.2010