用DELPHI做DLL,提示说最好不要用string来传递参数,说是会有兼容问题和内存管理问题。那现在有如下几个问题
1、如果函数不用string来作参数传递,那函数内部是否可以采用string呢?
2、如果不用string,用widestring来传递参数是否合适?
3、用widestring和用pchar有什么区别

解决方案 »

  1.   

    3、WideString=PWideChar(2 byte)PChar(1 byte)
      

  2.   

    今天翻阅了CSDN的好多关于pchar,string,widestring的帖子
    有了几个结论
    1、pchar -> string 使用pchar(string);
    2、string-> pchar 使用strpas(pchar);好像一般情况下没有问题,但是,如果pchar做为参数传递给某个函数,函数获取了后,转换为string进行处理,再把处理结果转换为pchar返回,就会有问题啦。应该如何正确使用pchar和 string呢?包括在DLL中的使用。
      

  3.   

    今天翻阅了无数CSDN关于PCHAR/STRING/WIDESTRING的帖子。
    得出几个结论:
    1、在DLL传递参数要用PCHAR,
    2、pchar -> string 要使用strpas(pchar)
    3、string-> pchar 要使用pchar(string);但是,好像还是有问题啊。特别是在DLL里面,该如何解决啊。
      

  4.   

    输出使用PCHAR,比较稳妥,好象其他的语言如果使用STRING类型的 调用DLL会有问题,
      

  5.   

    今天中午测试pchar,发现好多问题。都快抓狂了。
      

  6.   

    加入Sharemem單元
    發布時加入BorlandMM.dll