我已经阅读并成功尝试了How can I pass a Delphi string to a Prism DLL?的答案,但想知道是否可以使用类似的方法将Delphi的整数数组(静态或动态)传递给Prism DLL。
答案 0 :(得分:0)
最简单(没有编组)是使用BASE16或BASE64将数组编码为unicode字符串并传递字符串。
答案 1 :(得分:0)
我没有时间写一个完整的工作示例,但这里是关键的事情来调整你在另一个问题中提到的例子:
声明一个缓冲区长度为
的类型type
[MarshalAs(UnmanagedType.LPArray)]
TBuffer = array[0..-length-]of integer;
并在缓冲区中进行操作时记得使用“固定”修饰符
var BufferPointer: ^TBuffer; pinned;
...
BufferPointer := @the_buffer[0];