我的代码如下:
var
tmpStr : String;
begin
tmpStr := '#$#$#&*^&%';
tmpStr := tmpStr + #13 + #13 + '_+|)_((';
application.messagebox(Handle,pchar(tmpStr),'test',MB_OK);
end;编译的时候提示 :Warning : unsafe type 'pchar'
怎样转换可以safer一点呢?

解决方案 »

  1.   

    procedure TForm1.Button2Click(Sender: TObject);
    var
    tmpStr : String;
    begin
    tmpStr := '#$#$#&*^&%';
    tmpStr := tmpStr + #13 + #13 + '_+|)_((';
    application.messagebox(pchar(tmpStr),'test',MB_OK);
    end;
      

  2.   

    var
    tmpStr : String;
    begin
    tmpStr := '#$#$#&*^&%';
    tmpStr := tmpStr + #13 + #13 + '_+|)_((';
    application.messagebox(pchar(tmpStr),'test',MB_OK);
    end;
    楼主那样写是编译不过去的
      

  3.   

    直接用pchar()函数不就行了吗?
      

  4.   

    Warning : unsafe type 'pchar' 是指與update 到 .net 可能會不兼容的,對現在的程序并無影響,如不想出現提示,在編繹選項中關閉該檢查就可!
      

  5.   

    用 PAnsiChar(),关键在于看那个函数需要什么样的类型参数。
      

  6.   

    你那样写完全没有问题的,不用去理会“提示信息”(注:其实这应该是Delphi编译器为以后支持.net做的小提示而已!!)(你用的是Delphi7吧!!)
      

  7.   

    http://www.eaoo.com/design/list.asp?classid=2&Nclassid=15
      

  8.   


      Buffer: PChar;
      Str: String
    begin
      Str := 'Hello';
      GetMem(Buffer,Length(Str) + 1);
      StrCopy(Buffer, PChar(Str));
      FreeMem(Buffer);
      

  9.   

    warning和hint都可以不加理会,反正不影响编译,而且可以在Options里设置不显示warning和hint
      

  10.   

    楼上的说得很对,这是delphi的一种机制,可以隐藏
      

  11.   

    楼上的说得很对,这是delphi的一种机制,可以隐藏