如何将Delphi的整数数组传递给Prism DLL?

时间:2010-09-09 13:38:50

标签: arrays delphi dll delphi-prism oxygene

我已经阅读并成功尝试了How can I pass a Delphi string to a Prism DLL?的答案,但想知道是否可以使用类似的方法将Delphi的整数数组(静态或动态)传递给Prism DLL。

2 个答案:

答案 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];