在delphi中调用一个c++写的DLL,其中需要传递一个结构指针如下:
struct info
{
a char[10],
b char[10]
}
现在,我在delphi中定义一个记录类型如下:
type = record
a string(10);
b string(10);
end;现在我要传递参数,使a的值为‘123456’,问题是:我怎么操作才能让a是空结束的串,而不是delphi的短串?我已经使用了{$H+}编译选项。

解决方案 »

  1.   

    type = record
    a : array[1..10] of Char;
    b : array[1..10] of Char;
    end;PS : fillchar
      

  2.   

    type 
      TT = packed record
        a: pchar;
        b: Pchar;
      end;
      
      PS: ^TT
      

  3.   

    type
       Info = packed record
          a: PChar;
          b: PChar;
       end;
       pInfo = ^Info;
      

  4.   

    按你们说得做,dll收到的参数都不对
      

  5.   

    最后实在没办法了,我把串的字节一个一个读出来,写成空结束串。
    哎,delphi。