if Application.MessageBox(pChar('您确定要提交该条采购计划吗?'+Char(13)+'计划编号为['+MyModelID+']'),'长庆第三采油厂',
       MB_OKCANCEL + MB_DEFBUTTON1) <> IDOK then
       Exit;为什么会出现如下的
警告信息:unsafe type "pchar"为什么它提示PCHAR是不安全的类型呢?

解决方案 »

  1.   

    >>unsafe type "pchar"
    是為了與以後的 .net 程序兼容, 理論上, 你的 .net 的程序中不可以直接使用指針, 所以, 警告你, 但對現在程序的編繹沒有一點影響!!!
      

  2.   

    同意楼上。Project->Option->Compiler Messages最下面将unsafe type "pchar"
    不选择就行啦。
      

  3.   

    不理解楼主为什么要用pchar进行转换。
      

  4.   

    我就碰到过这样的问题:
    类似的两个工程(其中的一个工程是复制过去后修改了一下),都使用了API函数WinExec,参数要用PChar做转换,一个工程Build时会有这个警告,另一个工程Build时却没有这个警告,呵呵,真是搞不懂,不理它,照样正常使用.
      

  5.   

    一楼说的一点也没有错,DELPHI7已经考虑到了移植到点NET的问题,在点NET里,指针是不安全的。
    至于为什么有的人遇到,有的人没有遇到,那是因为各人的编译选项不同。
    在Project菜单下选Options
    “Compiler Messages”,最下面三个选项就是了...........
    如果程序不移植到点NET,那么把这三个选项的勾取了(默认也是取了的)。
      

  6.   

    同意一楼的看法!
    至于为什么要那样进行转换请自己尝试去掉转换试试看,
    其实Application.MessageBox函数的第一个参数的类型是PCHAR,如果直接传入一个字符串的话编译器应该进行隐式转换了,否则则报错