写出一个不会造成资源分配崩溃的Delphi应用程序的关键是确保如果程序中分配了资源 即使当故障发生 程序也应能释放占用的资源
文件 内存 WINDOWS资源和对象是一些必须时时加以注意的需确保释放的资源 下面的事件控制代码例子中先分配了内存 然后产生了一个错误 而造成它不再执行释放内存的程序代码
ProcedureTForm .ButtonlClick(Sender Tobject)
Var
Pointer Pointer
Integer Numzero Intger
begin
Numzero Κ
GetMem(Pointer ) {分配 K的内存资源}
Integer Κ divNumzero {此句产生一个除法错误}
FreeMem(Pointer ) {这里此句将不被执行}
end
尽管大多数错误不会这样明显 但上例包含了重要的一点 当错误产生后 程序执行跳出模块 其后的资源释放程序代码不再被执行 为了确保上例中的FreeMem能够释放被GetMem占用的内存资源 必须把代码放入一个资源保护模块
这里给出一个曲型的资源保护模块的格式
{资源的分配}
try
{资源的使用}
finally
{资源的释放}
end
上面的try...finally模块可以使程序总能执行finally部分中的任何程序代码 即使有错误在保护模块中产生 当try部分中的某一条代码执行引起错误时 执行将直接跳到finally部分 若执行中没有错误产生 则程序按正常顺序执行
在下面的事件控制代码例子中先分配了内存 然后产生了一个错误 但是仍然执行了释放内存的程序代码
ProcedureTForm .Button Click(Sender Tobject)
Var
Pointer Pointer
Integer Numzero Integer
begin
Numzero Κ
GetMem(Pointer ) {分配 K的内存资源}
try
Integer Κ divNumzero {此句产生一个除法错误}
finally
FreeMem(Pointer ) {这里此句仍将被执行}
end
end
lishixinzhi/Article/program/Delphi/201311/25084
那不是释放内存的问题,而是你运行的程序是死循环,就是没办法停止,建议你修改程序。还有,在C++中释放内存可以用delete语句,比如我申请了动态存储空间p,“
int
p;
p=new
int[10];”最后我想释放内存,就需要添加语句“delete
[]p”
说多一点,使用doc系统,但程序结束时,系统会自动释放内存的。应该回答了你的问题了。
一般情况下不是大问题,有时重启一下或修复一下IE就好,如果是玩游戏出现,建议卸载后重装该游戏。如果还不断出现就按下列法:(本答案谢绝复制)1把内存条擦擦金手指或换个插槽,进安全模式用360安全卫士或超级兔子卸载插件清除垃圾2运行容量较大的程序或大型游戏时,要重启一下微机,及时释放内存3如果计算机系统不小心感染了病毒或者发生了误删除 *** 作,那么与系统内存读写 *** 作有关的系统文件很可能受到损坏,就容易遭遇内存读写故障提示。你可以按照如下步骤修复一下系统,看看系统是否存在损坏的文件:首先对系统进行病毒查杀,其次使用系统自带的“sfc”命令,将受到损坏的系统文件修复到正常状态。在修复受损系统文件时,单击“开始”/“运行”命令,在d出的系统运行对话框中,输入字符串命令“sfc(空格)/scannow”,单击回车键后,该命令程序就会对系统每个角落处的系统文件进行搜索扫描,一旦发现系统文件的版本不正确或者系统文件已经损坏的话,它就能自动d出提示界面,要求你插入Windows系统的安装光盘,以便从中提取正常的系统文件来替代不正常的系统文件,从而达到修复系统文件的目的。要是系统修复 *** 作成功的话,重新启动计算机系统时,就不会看到有什么不正常的现象了。(有的系统盘不好用,我试过,系统盘最好找张专业版的)4还有一种方法:在开始-运行里输入CMD确定,在命令行窗口下输入以下内容后按回车for%1in(%windir%\system32\ocx)doregsvr32/s%1完了后,再输入以下内容并回车for%1in(%windir%\system32\dll)doregsvr32/s%1这个要好久,耐心等候,但也可能需要重启后整个效果才会出来。注:第1、2、4项不能解决时再用第三项。
把系统盘C:虚拟内存设置成不分页的,把分页的设置到D:里,一般是物理内存的2倍,还有你杀毒看看,是否病毒占据内存空间了,建议你内存小的话,你不要打开太多的程序,还有不要往系统盘里安装任何非系统文件和程序
以上就是关于Delphi程序使用资源的释放全部的内容,包括:Delphi程序使用资源的释放、如何释放VC++程序调试过程中占用的内存、vbscript中有没有释放程序内存的方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)