同上
解决方案 »
- 有关combobox中的hint问题(最近问得多,么分了,可以再加分)
- 请问怎么从URL中分解出正确的文件, 如从http://www.sina.com.cn 分解出实际的URL应该是http://www.sina.com.cn/index.htm
- ******谁能给一份比较完整的ftp上传下载文件的例子?******
- 请问用Tchart控件画图怎么才能不让图形檫掉?
- WebService菜鸟问题!
- 请教Treeview的使用!
- 求用DELPHI调用网页例子。二点结分。
- 求<Delphi4编程技术内幕>中文电子版
- 重分(100分)求解:如何减小delphi程序的大小(我做的程序老是很大!)
- 什么表格控件的单元格类型为richedit
- 请教一个关于文件读写的问题
- 如何通过程序写批处理文件
陈经韬
电脑启动一段时间后,因为运行了很多程序,整台电脑速度会越来越慢.为什么呢?原来很多程序运行的时候需要占用很多内存.即使程序退出后仍然无法完全释放的.那么如何找回丢失的内存呢?现在有很多这类程序,比如说<<Windows优化大师>>就带了一个<<Windows内存整理>>工具.我手头上的是V1.1版本.
程序设计会写代码很重要.程序设计思路更重要.程序设计分析别人的思路然后归自己所有更更重要.我希望通过这篇文章让大家掌握如何分析别人的思路,这样比单纯公布思路有价值的多.
先把话题扯远一点.木马冰河大家应该听说过吧.它的配置就很值得我们学习.一般这类软件的原理是这样的:客户端程序把信息写进服务端,服务端第一次运行的时候从自己身上读取出来保存到注册表或者INI文件里面.这样做的好处在于方便远程更新的时候直接修改注册表即可.这样做也有个致命BUG,就是别人用注册表监视器之类很容易就发现,这样一来别人就很容易知道接收者的信箱了.怎么办呢?冰河原来是采用把信息写进自己里面.但是自己怎么写进自己里面呢?我们分析一下就知道答案了.
首先,第一步先修改注册表:在HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\WinoldApp下新建一个双字节类型的键名为Disabled键值为1的新键,其作用是禁止运行DOS程序(包括批处理文件).当然你也可以用超级兔子之类的程序来修改.第二步:配置服务端种子,我们选择安装在<TEMP>目录下(原因:文件比<windows>、<system>下都要少),把<TEMP>目录下尽量清空,以便于我们下一步分析。
第三步:运行服务端,用客户端成功连接后远程修改配置,系统会弹出一个窗口:本次操作受限制.第四步:打开<TEMP>目录,发现除了服务端文件外,多了两个文件:NewFile.exe和sysclr.bat。击右键查看属性可以看出NewFile.exe跟服务端文件大小一样,从而知道它是服务端的备份。打开sysclr.bat,内容如下:
@echo off
:loop
del c:\windows\TEMP\NewFile.exe
if exist c:\windows\TEMP\NewFile.exe goto loop
...
1、动态创建的对象能够显式的释放:
如上面各位兄第所说的,在窗体程序中自动创建后能显式的(就是直接调用free了)
将其销毁,而不是默认由Delphi自己释放。
2、动态的打开文件或数据库表:
使用的时候再打开,不用的时候就Close掉
3、动态分配的内存最好显式的回收
方法与上面的相似,如:对变长数组的引用,如果无用后应该把数组的长度设为一个适应
的最小值。
就行了。