一个函数,大体这样:
function GetIniString(....pcBuffer: PChar;....): Integer; stdcall;其中pcbuffer是一个指向由外部程序创建的Char数组的指针,在不传递这个Char数组的大小的情况下,怎样防止溢出。
不胜感激!!!

解决方案 »

  1.   

    try
    except
    方法
    还可以有相关API可以检查的,查看MSDN了http://lysoft.7u7.net
      

  2.   

    GetMem(pcBuffer, High(Integer));
    ...
    FreeMem(pcBuffer);
    总可以了吧
      

  3.   

    看着简单,好象有点头疼.....呵,由调用者分配空间,接收被调者数据,这样函数如果不传BUF SIZE作为参数,几乎可以算是设计缺陷了.如果一定要用它,没办法,就用吧.
    1,调用者缓冲区分配适当大一些..
    2,不要在栈分配这块空间...就算在堆中溢出都要好得多.
    如果在栈中缓冲区溢出,TRY抓异常是没有太大用处的..
      

  4.   

    PChar型
    取得它长度也很简单
    用Length