function TestDll(a:pchar;  b:pchar;  rtna:pchar;   rtnb:pchar):integer;stdcall;
begin      //处理语句
      //……      Result:=i;
end;exports
     TestDll;begin
end. 想实现rtna和rtnb作为出参,返回给调用TestDll的程序,请问如何实现?

解决方案 »

  1.   

    这不都是语言基础问题吗?
    如果是调用者事先分配缓冲区,那么你直接可以通过指针操作来修改缓冲区内容。函数的参数表保持现在这样不变。
    如果是要直接修改实参指针的指向,那么必须传递引用。参数表改为(a, b:pchar; var rtna, rtnb:pchar)
      

  2.   

    我是新手,请勿见笑。如果是要直接修改实参指针的指向,那么必须传递引用。参数表改为(a, b:pchar; var rtna, rtnb:pchar)具体下面的语句怎么写呀?
      

  3.   

    各种方案
    返回结构体
    用var/out参数
      

  4.   

    用var/out参数怎么写呀?
      

  5.   

    function TestDll(a:pchar;  b:pchar; out rtna,rtnb:pchar):integer;stdcall;
    begin      //处理语句
          //……      Result:=i;
    end;exports
         TestDll;begin
    end.