做dll时,如下代码
    try
      ...
    except
      on E:Exception do
        Application.MessageBox(PChar(E.Message), '错误');
      end; 
Build出现警告:
[Warning] .pas(394): Unsafe type 'PChar'
怎样纠正?还望高手指点!
谢谢

解决方案 »

  1.   

    不安全的Pchar?PCHar好象得分配和释放存储空间。试试做一个变量存储转换后的值~?
      

  2.   

    沒事的, 主要是為了兼容以後 .net 的程序, 建議你不要用指針類型(.net 安全類型不支持指針)的變量, 對你現在的程序沒有任何影響
      

  3.   

    to 楼上 :不用pchar用什么
      

  4.   

    PAnsiChar()。
    使用PChar()进行强制类型转换,D5就没有问题, D7做了检查并提示警告。
    乐意在D7中使用PAnsiChar()函数进行替换,不产生警告。
      

  5.   

    PAnsiChar在D7也是这样的警告
    算了,偶改成这样了
      except
        raise;
      

  6.   

    >>Application.MessageBox(PChar(E.Message), '错误'); showMessage(E.Message);
      

  7.   

    用 {$WARN -xxx} 把这个警告关了算了,如果不是“不敢用指针的话”、不去兼容.NET 的Managed Code 的话。xxx 为该警告的序号。
      

  8.   

    {$D-}
      ......your code here......
    {$D+}  这样太麻烦了点吧!
      

  9.   

    Project->options...-->Complier Messages-->Unsafe type 勾取消