摘要: Delphi内存管理与内存泄漏探析 杨继宏,龚 晖,李 治  摘 要:综述了Delphi环境下动态内存分配与释放的方法,分析了内存泄漏的可能原因,并列举了开发“智能型远程作业系统”过程中出现的有关内存泄漏的几个实例。 关键词:内存分配;内存释放;内存泄漏;智能型远程作业系统 1  引 言  Delphi是Borland公司的划时代之作,以其功能强大且易学 好用而受... 阅读全文
posted @ 2009-07-27 12:59 Handll 阅读(3855) 评论(0) 推荐(0) 编辑
摘要: 最后工作。 现在,我们编译程序,然后生成一个DLL文件,在命令行下,使用: regsvr32 MyCOM.dll 向系统注册COM。 COM Client程序 在DELPHI中调用 新建一个项目,然后在单元中,定义接口信息: IMyCOMTest = interface(IUnknown) ['{D1C4A022-7F6F-42F0-A9B0-4A91703EB124}'] function... 阅读全文
posted @ 2009-07-27 12:59 Handll 阅读(433) 评论(0) 推荐(0) 编辑
摘要: l 类工厂的实现 正如我前面所说的,一个类工厂必须去建立我们自定义的接口。在上面,我们定义了自定义的接口,并由类TMyCOMServer 去实现。那么,现在我们还要做的是,实现类工厂,然后由类工厂建立一个TMyCOMServer 的接口实例。类工厂接口定义如下: IClassFactory = interface(IUnknown) ['{00000001-0000-0000-C000-000... 阅读全文
posted @ 2009-07-27 12:58 Handll 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 原创:吴剑明(foxnt) 前言 COM已经成为一个必需的东西了。在我们周围,可以说处处充满了COM – 如果你是在使用WINDOWS,并在其下面编写程序的话。然而,无论你是用VC,还是使用DELPHI进行COM编程时,在大多数情况下,编程工具的 IDE已经向你隐藏了COM的大部分实现过程,使得程序员根本不需要了解COM,只专心致志地写其所关心的逻辑代码。这就意味着,我们很少有机会... 阅读全文
posted @ 2009-07-27 12:57 Handll 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 最近开始接触web services,在网上找了些例子做了下,主要是实现单个exe的web services服务的实现: 我总结有一下几点要注意: 1:新建一个SOAP Server Application工程,方式选择debuger,向导自动生成的代码中:initializationTWebAppSockObjectFactory.Create('Han');是为了debuger服务器而生成的... 阅读全文
posted @ 2009-07-27 12:57 Handll 阅读(480) 评论(0) 推荐(0) 编辑
摘要: --------开发环境-------- Delphi 7是一个很经典的版本,在Win2000/XP下推荐安装Delphi 7来开发软件,在Vista下推荐使用Delphi 2007开发软件。安装好Delphi 7后,应立即安装Delphi 7 Update Pack 1,Delphi 2007则建议尽量安装最新的版本。工欲善其事,必先利其器,为了提升开发效率,为了能更加得心应手的处理接下来... 阅读全文
posted @ 2009-07-27 12:55 Handll 阅读(546) 评论(1) 推荐(0) 编辑
摘要: 看一个指针用法的例子: 1 var 2 X, Y: Integer; // X and Y 整数类型 3 P: ^Integer; // P 指向整数类型的指针 4 begin 5 X :=17; // 给 X 赋值 6 P := @X; // 把 x的地址赋给p 7 Y := P^; // 取出p所指向的数值赋给y 8 end; 第二行定义了两个变量X,y. 第三行声明了p是指向整... 阅读全文
posted @ 2009-07-27 12:54 Handll 阅读(358) 评论(0) 推荐(0) 编辑
摘要: 做好了一个Service Application 程序,用命令MyService.exe /install 进行安装,安装成功后会出现一个"Successfully"的提示框,觉得很不爽,其实,加一个命令行参数,MyService.exe /install /silent 就搞定了:) 阅读全文
posted @ 2009-07-27 12:53 Handll 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 比方说这个读取缓冲区的数据,就有很多种方法。相对于TTcpClient的几种方法来说,TIdTCPClient确实提供了多种选择,不仔细研究真的容易糊涂(其实我比较喜欢用CurrentReadBuffer):      1、ReadFromStack   原型:function ReadFromStack(const ARaiseExceptionIfDisconnected: boolean; ... 阅读全文
posted @ 2009-07-27 12:53 Handll 阅读(911) 评论(0) 推荐(1) 编辑
摘要: 1、FastMM 主页:http://fastmm.sf.netDelphi 2006 中一个重要的更新就是使用开源内存管理器 FastMM 替调了使用了 N 年的老内存管理器。FastMM 在外国 Delphi 社区非常有名,其主要目的就是重新实现一个高效、安全、稳定的内存管理器(Borland 的内存管理器问题多多,如 Dll 和 Exe 间无法共享,多线程下效率底--一些情况下甚至于低... 阅读全文
posted @ 2009-07-27 12:51 Handll 阅读(760) 评论(0) 推荐(0) 编辑
摘要: function Int(X: Extended): Extended;//取整 注意它返回的是Extended类型它也是浮点型哦function Round(X: Extended): Int64;//四舍五入 function Trunc(X: Extended): Int64;//将小数无条件舍去floor 直接往小的取,比如 floor(-123.55)=-124,floor(123... 阅读全文
posted @ 2009-07-27 12:49 Handll 阅读(591) 评论(0) 推荐(0) 编辑
摘要: [代码] 阅读全文
posted @ 2009-07-27 12:48 Handll 阅读(296) 评论(0) 推荐(0) 编辑
摘要: sqldmo.dll是一个com,安装SQLServer后位于Program Files\Microsoft SQL Server\80\Tools\Binn文件夹下,关于sqldmo能做什么的问题,不是本文讨论的重点,这里只说明如何使用该com,现在开始。第一步,导入sqldmo,生成类型说明文件。 打开Delphi,Project菜单->Import Type Library...,在列... 阅读全文
posted @ 2009-07-27 12:47 Handll 阅读(248) 评论(0) 推荐(0) 编辑
摘要: [代码] 阅读全文
posted @ 2009-07-27 12:46 Handll 阅读(188) 评论(0) 推荐(0) 编辑
摘要: {$IFDEF WIN32} -- 這可不是註解喔!對於Delphi來說﹐左右大括號之間的內容是註解﹐然而「{$」(左括號後緊接著貨幣符號)對於Compiler(編譯器)而言並不是註解﹐而是寫給Compiler看的特別指示。應用時機與場合Delphi中有許許多多的Compiler Directives(編譯器指令)﹐這些編譯指令對於我們的程式發展有何影響呢? 它們又能幫我們什麼忙呢?Compi... 阅读全文
posted @ 2009-07-27 12:44 Handll 阅读(557) 评论(0) 推荐(0) 编辑
摘要: Delphi编译指令共有三种,开关编译指令、参数编译指令和条件编译指令。 一个编译指令实际上是一个标志符(编译器所能识别的标志符),且有其固定的语法。编译器根据不同的指令按不同的方式编译程序。你可以将一个编译指令放在程序的任何位置。编译指令的开始字符是“ $“ ,它总是出现在 “{“符号之后,$之后为编译指令的实际部分,可以是一个或多个字符(根据... 阅读全文
posted @ 2009-07-27 12:43 Handll 阅读(555) 评论(0) 推荐(0) 编辑
摘要: 之前编译资源,要么是运行dos在dos里输入命令brcc32 *.rc,要么是把此命令写成bat文件,其实那样都很烦琐,今天发现一种超级方便的方法去编译资源文件。 1、在程序目录下新建一个文本文件,如Source.txt,并在里面写资源编译字符串 2、在代码中插入资源编译指令,这里如:{$R 'Source.res' 'Source.txt' }ok,就这样就可以了!!!插入资源编译指令后... 阅读全文
posted @ 2009-07-27 12:42 Handll 阅读(180) 评论(0) 推荐(0) 编辑
摘要: Delphi 3开始增加了一种新的参数:out。out参数没有初始值,只是用来返回一个值。out参数应只用于COM过程和函数,一般情况下最好使用更有效的var参数。除了没有初始值这一点之外,out参数与var参数相同。 阅读全文
posted @ 2009-07-27 12:41 Handll 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 方法1: 在Delphi自带的Indy控件中其实是提供了MD2,MD4,MD5对象的,我们可以直接使用它们来完成MD5的签名算法。而不需要再去找其它的DLL或是Pas了。在Uses单元中引用IdHash,IdHashMessageDigest单元,再写如下代码即可以达到MD5的实现。 示例代码[代码]说明:MyMD5.HashValue函数中可以是一个字符串或是一个流对象,它返回的结果类型为T4x... 阅读全文
posted @ 2009-07-27 12:40 Handll 阅读(458) 评论(0) 推荐(0) 编辑
摘要: Treeview用于显示按照树形结构进行组织的数据。 Treeview控件中一个树形图由节点(TreeNode)和连接线组成。TtreeNode是TTreeview的基本组成单元。 一个树的节点又包含文本(Text)和数据(Data)。Text为String类,Data则为无定形指针(Untyped Pointer), 可以指向一个与节点相联系的数据结构。    每一个节点下子节点形成这一节点的... 阅读全文
posted @ 2009-07-27 12:39 Handll 阅读(71558) 评论(2) 推荐(2) 编辑