如何在c和delphi之间传递二维数组?具体的实现是C传给delphi的dll程序一个string的字符串(c的pointer指针),delphi格式化运算后返回一个二维数组给C的主程序? 
delphi的函数为这样:
Function GSH (In1:Pointer;.........):........; stdcall ; //in1为c传入的字符串的指针
按上面的格式给出参考例程!谢谢!

解决方案 »

  1.   

    按照谁申请内存谁释放的原则,还是需要 C 方面传递二维指针进来,否则 C 每办法释放C 传递进来的指针(原来也是二维的)你强制转化为二维的即可,但是你需要知道一维长度,最好还是传递进来
      

  2.   

    有没有相关的代码来参考,不知c的数据结构和delphi有什么不同!因为本人对c不是很熟!请高手指点!?
      

  3.   

    delphi写DLL(这个是我要做的工作)把C传过来的字符串进行格式化后并按照字符串的内容细分为二维的数据并且传回给C语言的主程序! 
    例如 
    C传过来 
    ‘11’;‘12’;‘13’;‘14’;‘15’;‘21’;‘22’;‘23’;‘24’;‘25’;‘31’;‘32’;‘33’;‘34’;‘35’; 
    delphi格式化后成为一个二维数组: 
    A[1,1]:=11 
    A[1,2]:=12 
    A[1,3]:=13 
    A[1,4]:=14 
    A[1,5]:=15 
    A[2,1]:=21 
    A[2,2]:=22 
    A[2,3]:=23 
    A[2,4]:=24 
    A[2,5]:=25 
    A[3,1]:=31 
    A[3,2]:=32 
    A[3,3]:=33 
    A[3,4]:=34 
    A[3,5]:=35 
    并且把此二维数组传给c主程序,有没有传递参数的例程啊?
      

  4.   

    接口函数 C:(row=5)
    void (__stdcall * TranData)(LPCSTR src, char **dest. int row);调用:
    AnsiString asTest = "12 : 13: 34: ....";
    char Result[20][5];TranData(asTest.c_str(), Result, 5);
      

  5.   

    有没有例程!delphi又怎么写呢?delphi读取数组应该没有问题,但delphi如何传递回C主程序啊?