把string的值付给pchar型,得到的数据不全,为什么?

解决方案 »

  1.   

    你是怎么"把string的值付给pchar型"的, 贴代码出来
      

  2.   

    function get_ss(id:pchar):pchar;stdcall;
    begin
    .........
    while not eof do
    begin
      t:=t+qry_temp.fieldbyname('id').asstring+qry_temp.fieldbyname('name').asstring+#10+#13;
    next;
    end;
    result:=pchar(t);
    end;
      

  3.   

    为什么没有人搭理呢?这个从string到pchar的转换最正确的写法应该是什么样的?
      

  4.   

    你在函数的最后把t的内容showmessage出来看看正不正常,如果不正常就是你的上面的代码的问题了.比如你可以在遍历数据集之前没有First跳到第一条记录之类的
      

  5.   

    t值是正确的,就是付给result出的错我已经测过了
      

  6.   

    那应该是t是过程完成就被回收了,看来你要用GetMem自己分配Result的内存.....不过这样你调完后,要记得在外面FreeMem掉
      

  7.   

    以var 的形式作为输出变量返回给主调函数
    另外,PCHAR类型的,你先应该申请足够的内存,再通过字符串拷贝的方式进行赋值