原本就是用的pchar传值的,但后来厂家的技术人员就这个参数,应该是传字符型的指针数组?搞得我也晕了。

解决方案 »

  1.   

    你管厂家的人说啥,你执行的结果正确就行了。而且这个InStr明明就是一个字符指针,哪是什么字符指针数组。
    就这个函数声明来说,传入了字符串和字符串的长度,就能正确处理这个字符串了,干嘛非要什么数组还是pchar。当然你别传string就行了。如果要传数组也行,声明中把pchar的改成这样
    function Write_Card(InStr:array of ansichar;.....
      

  2.   

    function Write_Card(InStr: Pchar;Len: DWORD;Sector: DWORD;Block: DWORD; MM: Pchar):integer; stdcall;
    定义如上面;
    调用时: getmem(InStr, 16), len 传入你实际的长度
      

  3.   

    声明的时候是Pchar就可以了,传值的时候可以直接用Pchar类型的变量,也可以传字符数组的地址,即@数组名