摘要: 参考:http://cqujsjcyj.iteye.com/blog/380926 我想你可能还有点模糊。举个例子容易明白:假如你的窗体上有两个按钮,一个“计算”,一个“停止”, 如果你的计算是密集运算或复杂处理,当你点了“计算”钮后,你将发现“停止”按钮不会响应你的点击了,也就是说,你无法随时使计 阅读全文
posted @ 2015-04-24 17:49 xumenger 阅读(1238) 评论(0) 推荐(0) 编辑
摘要: 上篇博客中提出了一个问题:怎么结束一个定时循环执行的线程,并给出了一个解决方案,但是又出现了一个问题,详细去参考上一篇博客。 然后出去撒了个尿,突然脑子里出现了一个想法(看来工作和思考久了,出去走走,哪怕是去撒个尿,都可能尿出火花,所以工作和学习的时常根本就不等同于效率灵感不是在那里拼命工作、想就能 阅读全文
posted @ 2015-04-24 17:47 xumenger 阅读(2946) 评论(0) 推荐(0) 编辑
摘要: 在线程对象被释放之前,首先要检查线程是否还在执行中,如果线程还在执行中(线程ID不为0,并且线程结束标志未设置),则调用Terminate 过程结束线程。Terminate 过程只是简单地设置线程类的 Terminated标志,如下面的代码: 所以线程仍然必须继续执行到正常结束之后才行,而不是立即终 阅读全文
posted @ 2015-04-24 16:49 xumenger 阅读(5655) 评论(0) 推荐(0) 编辑
摘要: 类 Create 了就要 Free; 但 TThread(的子类) 有特殊性, 很多时候我们不能确定新建的线程什么时候执行完(也就是什么时候该释放); 如果线程执行完毕自己知道释放就好了, 所以 TThread 给了一个布尔属性 FreeOnTerminate, 如果为 True, 线程执行完毕后就 阅读全文
posted @ 2015-04-24 15:24 xumenger 阅读(6149) 评论(0) 推荐(1) 编辑
摘要: 首先说明一下:同一个动态库(DLL)被多个的程序加载的话,那么将会在每次加载的时候都会重新分配新的独立的内存空间,绝对不是共用一个,所以当一个DLL被多次加载的时候,其会在内存中“复制”多份,不会互相之间 产生影响。 加载DLL有两种方式:隐式和显式。下面就以刚创建的DLL为例,来介绍两种方式 一、 阅读全文
posted @ 2015-04-24 11:28 xumenger 阅读(729) 评论(0) 推荐(0) 编辑
摘要: 下面是在Delphi中创建一个DLL的全过程,你将看到怎样创建一个接口单元,使之可以被其他的应用程序访问。并且将学会怎么把Delphi的窗体加入DLL中。 一、数美分:一个简单的DLL 下面是包含一个例程的DLL例子。该例程是将以美分计算的货币换算成五分镍币、一角硬币的数目。 1.一个简单的DLL 阅读全文
posted @ 2015-04-24 11:25 xumenger 阅读(474) 评论(0) 推荐(0) 编辑
摘要: 使用DLL有若干理由,其中有一些前面提到过的。大体说来,使用动态链接库可以共享代码、系统资源,可以隐藏实现的代码或底层的系统例程、设计自定义控件 一、共享代码、资源和数据 前面已经提到,共享代码是创建动态链接库的主要目的所在。但与单元的代码共享不同,DLL的代码可以被任何Windows 应用程序共享 阅读全文
posted @ 2015-04-24 10:38 xumenger 阅读(435) 评论(0) 推荐(0) 编辑
摘要: 静态连接 静态链接是指Delphi 编译器把要调用的函数和过程编译成可执行代码。函数的代码可存留在应用程序的 .dpr文件或一单元中。当链接用户的应用程序时,这些函数与过程便成为最终的可执行文件的一部分。也就是说,函数和过程都在程序的.exe文件中 程序运行时,函数和过程随程序一起调入内存,它们的位 阅读全文
posted @ 2015-04-24 09:58 xumenger 阅读(493) 评论(0) 推荐(0) 编辑
摘要: DLL(动态链接库)是程序模块,它包括代码、数据或资源,能够被其他的Windows 应用程序共享。DLL的主要特点之一是应用程序可以在运行时调入代码执行,而不是在编译时链接代码,因此,多个应用程序可以共享同一个DLL的代码。 事实上,文件 Kernel32.dll、User32.dll、GDI32. 阅读全文
posted @ 2015-04-24 09:39 xumenger 阅读(660) 评论(0) 推荐(0) 编辑

业精于勤而荒于嬉,行成于思而毁于随

十万小时的反复练习