小弟有一个问题需要大家帮忙解释一下
我的同事使用VC写了一个函数GetAllInfoGetAllInfo(&pInfo,          // OUT: info pointer
        &dwMaxCount,     // OUT: info's  MAX  count
        &dwRealCount     // OUT: info's  REAL count
        );函数的第一个参数是 是一个 OUT 类型的结构指针S_RUNINFO* pInfo;这个函数填充了整个结构 ,  填充完的结构是一个 数组  所以可以下列来使用      pInfo[i].dwType,
      pInfo[i].pValueName,但是我在DELPHI里面却没有C那么灵活,他开始明明声明的是一个结构指针,但是却能当数组来使用,  大家说  我该怎么用DELPHI写?>>??????????//

解决方案 »

  1.   

    定义一个指向结构数组的指针类型,来cast这个PInfo。
      

  2.   

    看C++的原型,参数是引用类型的。最好改成指针的,Delphi调用就方便了。
      

  3.   

    type
      PS_RunInfo = ^TS_RunInfo;
      TS_RunInfo = S_RUNINFO;
      
      PS_RunInfoArray = ^TS_RunInfoArray;
      TS_RunInfoArray = array[0..0] of TS_RunInfo;procedure GetAll(pInfo: PS_RunInfo; var dwMaxCount, dwRealCount: cardinal);
    begin
      PS_RunInfoArray(pInfo)[0].dwType := 100;
    // ...
    end;如果这个pInfo不允许为NULL,那么也可以定义参数为var pInfo: TS_RunInfo。