请各位帮个小忙:
我使用DLL写了一函数,格式如下:
function mmzh(mmstring:string):pchar;stdcall;
var
 t_abc:string;
begin
 ......
end;
 mmzh:=pchar(t_abc);
exports
 mmzh;
该dll程序可以正常运行,但delphi 7 在编译时提示
[Warning] MMZH.DPR(19): Unsafe type 'PChar',
我很担心,pchar类型是不是真的不安全,会不会造成程序运行不稳定,可不用pchar又能用什么类型呢,请各位赐教。

解决方案 »

  1.   

    这个应该没有什么问题的,string和pchar最大的差别就在\0上.不过建议要是给别的编程工具用,最好都用pchar.
      

  2.   

    string类型和PChar的长度是不是不一样
      

  3.   

    沒有問題的, Unsafe type 'PChar', 是指為了兼容 .net而出的提示, 提示你如果你現在的代碼存在指針, 可能在轉移到.net會不安全, 而對現在的程序是沒有影響的!
      

  4.   

    不是,PChar主要是用来兼容C\C++语言要求字符串要\0结尾的,因为在VC中Strcpy要遇到\0才停止,而string并不是\0结尾的,所以VC调用string类型的变量容易出问题的.
      

  5.   

    sorry,我说错了,Long String也是\0结尾的,但string类型包含长度,不是以第0位做为起始位, PChar完全兼容C的语法.