欢迎来到天天文库
浏览记录
ID:32386508
大小:54.50 KB
页数:11页
时间:2019-02-04
《易语言优化教程》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、1、对象的载入与卸载有时我们会发现,用易语言测试运行一些朋友编写的易程序,当退出后,鼠标指针一直呈箭头及沙漏形状,甚至会死机。原因可能是该程序还没有完全退出,还有一些对象数据留驻内存。对象会占用相当程序的内存及系统资源。作个假设,如果你在退出程序时不关闭打开的数据库,那么多次打开程序并退出后,可能会引起内存泄漏事件而导致很快死机。故如果我们载入了某个对象,在使用完后要卸载对象释放资源,这是绝对有必要的。有些编程语言甚至在建立变量、数组、常量及窗口对象后,在程序退出时又要销毁它们。但易语言不用,因为在退出易程序时,它已自动帮你
2、做了这些工作。但有很多对象是无法在程序退出时自动销毁的,故需要编写代码来卸载这些对象。下面列举一些对象在易语言中怎样载入和销毁的例子。一、易语言内部命令中的对象载入和卸载1、打开数据库与关闭数据库载入数据库用“打开”命令,卸载或销毁数据库用“关闭”或“全部关闭”命令。2、打开文件与关闭文件打开文件用“打开文件”命令,关闭文件用“关闭文件”或“关闭所有文件”命令。3、载入图片与卸载图片有时不一定要在退出程序时卸载被载入的图片,因为如果某图片被载入后未被卸载,在易程序退出时将自动被卸载。但退出时用代码卸载保险一点。二、API函数
3、中的对象载入和卸载1、获取设备环境与释放设备环境由GetDC函数获取的设备环境必须用ReleaseDC函数释放;由BeginPaint函数获取的设备环境要用EndPaint函数释放。2、创建画笔与删除画笔使用画笔之前必须事先定义一个画笔句柄。形式如下:HPEN(hP)然后调用函数GetStockObject获取Windows系统定义的四种画笔例如获取画笔BLACK_PEN的形式如下:hP=GetStockObject(BLACK_PEN)创建画笔后,必须调用SelectObject函数将其选入设备环境。不再使用当前画笔时,需
4、用DeleteObject删除画笔,以免占内存。3、建立画刷句柄与删除画刷句柄使用画刷需事先定义一个画刷句柄。形式如下:HBRUSH(画刷句柄)然后调用函数GetStockObject获取Windows系统提供的7种画刷;不使用画刷时,可用DeleteObject删除画刷,释放内存。4、载入位图与释放位图用LoadBitMap加载位图并获得位图的句柄,用DeleteObject来释放位图或其他对象。5、打开剪贴板与关闭剪贴板打开剪贴板由应用程序调用OpenClipboard函数完成;关闭剪贴板由应用程序调用函数CloseCl
5、ipboard完成。6、创建计时器与删除计时器SetTimer用于建立一个计时器,KillTimer用于删除一个计时器。除上面这些之外,对象的载入和卸载还包括:建立与删除场景、载入与卸载DLL、捕获与释放鼠标、置与重置父窗口、载入与卸载皮肤、分配与释放内存、打开与关闭对话框、创建与释放压缩包、添加与删除提示、注册与撤消热键、创建与销毁线程、播放文件与关闭播放等等很多,其中有一些在易友所编写的易模块、支持库中有所反映。2、让你的易程序启动快一点有时是否觉得你的应用程序启动得太慢了?你可以用下面小技巧让你的程序启动起来感觉快一点
6、:在“__启动窗口_创建完毕”事件子程序的第一行或其他适当位置加入下面一行代码:_启动窗口.可视=真点评:易语言在窗口显示前一般先执行“__启动窗口_创建完毕”事件中的程序,如果你在“__启动窗口_创建完毕”中加入大量代码或载入庞大的数据库,就可能导致易程序执行代码很久而不显示窗口。我们在“__启动窗口_创建完毕”事件的第一行强制加入“_启动窗口.可视=真”让窗口先显现出来,这样给人感觉程序运行好象就快了点。加上这一句,程序窗口就会先显示出来再说,保险一点。3、[转帖]让易语言编译的程序更小作者:MSG]Hearson一、引
7、言易语言3.x独立编译的程序相对于2.x版本的来说,执行效率提高了,代码也短了。但是还是让人觉得颇为臃肿,什么程序也不写,编译出来的动辄就400多k。那么有什么好的方法吗?请往下看。二、操作方法吴老大在几个月以前发表了易语言支持库开发技术文档里面对易支持库开发有详细的说明。因为支持库是一个dll文件,那么,也就可以用其它编程工具来编写这个支持库。里面还有有关*.fn?的后缀名含义的说明:支持库文件名的后缀必须固定为.fnx,其中x为一类型字母,目前有意义的后缀有:1、“.fne”:带编辑信息、有运行支持代码的支持库;2、“.
8、fnl”:带编辑信息、无运行支持代码的支持库;3、“.fnr”:不带编辑信息、有运行支持代码的支持库;[/QUOTE]由于编译时打入文件的支持库后缀名为*.fnr,而每个支持库均为dll动态连接库,dll是win32pe文件,那么我们就可以使用一些已经存在的pe文件压缩工具对*.fnr文件
此文档下载收益归作者所有