代码审核学到的两个delphi内存泄漏问题

今天在同事的打击之下才真正明白了StrToPchar的用法:看StrToPchar的源代码才知道此函数内是有分配内存的,所以该函数只用在一种情况就是类似下面情况

Procedure fun

Var

fileName:pChar;

begin

fileName=strToPchar(AStrName);

……

fileName.free//用过该函数时必须要手动释放掉内存;

end;

绝对不能将其用在调用一个需要传递Pchar类型的函数中,此时如果需要将str转为pcahr,必须强制进行转换,如果此str用到+连接,则必须先定义一个str变量类型后再用Pchar自动转换。否则会造成StrToPchar中的申请的内存泄漏掉。

控件的释放问题,只要知道新生成的控件的父控件指针,就可以通过循环其父控件依次释放掉所有的子控件变量。

今天遇到两个关于数据库的问题:1.执行收缩数据库日志的批处理脚本错误的一个解决方法,先停止或分离掉该数据库,然后删除日志文件,再重新附加该数据库文件即可。2.连接sqlserver2005数据库时用TCP动态端口速度较慢,改为TCP端口连接程序运行连接数据库速度快些。

posted on 2012-09-13 22:09  时间朋友  阅读(543)  评论(0编辑  收藏  举报

导航