我是写c#的,最近要调用delphi 写的dll,但是我不明白下面的函数是什么意思??? 
function ReadAllSmsByStatus(aStatus: integer; var aMsg: array of TMsg): integer; stdcall
另外 这个方法应该是传数组进去吧?那么谁知道对应的C#应该传什么对象进去啊?
function ReadAllSmsByStatus(aStatus: integer; var aMsg: array of TMsg): integer; stdcall

解决方案 »

  1.   

    根据传入的aStatus参数获取,aMsg应该是一个输出参数,要获取的内容存在这个里面
    TMsg应该是自己写的一个结构
      

  2.   


    TMsg 是一个结构, var aMsg: array of TMsg 这里是需要一个Tmsg的数组吧??
      

  3.   

    用这种参数做dll接口的一看就是个菜鸟,根本就不知道 array of T 的参数究竟传什么东西
    实际上会传两个参数,用c写的话:
    int __stdcall ReadAllSmsByStatus(int aStatus, TMsg* aMsg_1st, int aMsg_LastIndex)数组的第一个参数是首元素的指针,第二个参数是最后一个元素的索引(数组长度-1)
    不用unsafe的话,我还真不太清楚该怎么写
      

  4.   


    这是C的,那有没有c#的啊,C#里面没有指针的概念啊
      

  5.   

    C#  Ref   聲明傳遞,   TMSG  相應應該是一個 Struct 
      

  6.   

     在 unsafe   下是允許的。 
      

  7.   

    那这里是不是传 ref Tmsn[] 这个结构的数组进去吗??