您现在的位置:首页 >> 基础算法 >> window基础 >> 内容

Delphi中常见一些异常情况Exception

时间:2011/9/3 15:34:37 点击:

  核心提示:1. 参数未初始化(变量在未使用前就进行初始化)。 VC在Debug下,会将所有栈上的内存初始化为0xCCCCCCCC(其实是一条中断指令INT 3,会调用默认的异常处理程序,参看《天书夜读》),Re...

1. 参数未初始化(变量在未使用前就进行初始化)。
    VC在Debug下,会将所有栈上的内存初始化为0xCCCCCCCC(其实是一条中断指令INT 3,会调用默认的异常处理程序,参看《天书夜读》),Release版本中该将不会存在。

2. 访问了已经删除的对象。
   养成对象删除后就赋为NULL的好习惯。Delphi中使用FreeAndNil,VC中使用宏:
   #define FREEANDNIL(P) if(P) {delete (P); (P) = NULL;}

3. 访问了错误的地址。
   使用IsBadReadPtr,可以检查读写越界。

4. 调用栈被破坏。
   主要原因是调用惯例不同,异常情况未加保护引起。

5. DLL和主程序使用不同的内存管理器。
   Delphi中需要use ShareMem; VC中DLL操作界面需要使用切换模块的宏。

6. 多线程之间的同步问题。

作者:etomahawk 来源:转载
共有评论 0相关评论
发表我的评论
  • 大名:
  • 内容:
  • 盒子文章(www.2ccc.com) © 2024 版权所有 All Rights Reserved.
  • 沪ICP备05001939号