调用自动化方法的语法
调用自动化对象的方法或访问它们的属性,与普通的方法调用和属性访问是类似的,但是,调用自动化方法既可以使用定位参数(positional),也可以使用命名(named)参数(但有些自动化服务器不支持命名参数)。
定位参数就是一个表达式,命名参数包括一个参数标志符,后面跟:=,再跟一个表达式。在调用方法时,定位参数必须在所有的命名参数之前,命名参数可以使用任意顺序。
一些自动化服务器允许你在调用方法时省略参数,而使用它们的默认值。比如,
Word.FileSaveAs('test.doc');
Word.FileSaveAs('test.doc', 6);
Word.FileSaveAs('test.doc',,,'secret');
Word.FileSaveAs('test.doc', Password := 'secret');
Word.FileSaveAs(Password := 'secret', Name := 'test.doc');
自动化方法的参数可以是整数、实数、字符串、布尔和变体类型。若参数表达式只是一个变量引用,并且变量类型属于Byte、Smallint、Integer、Single、Double、Currency、TDateTime、AnsiString、WordBool或Variant,参数以引用形式传递(传址);若参数表达式不是上述类型,或不止是一个变量,参数以数值方式传递(传值)。当使用传址方式调用一个以传值方式传递参数的方法时,会导致COM取得(/取回)引用参数的值;而当使用传值方式调用一个以传址方式传递参数的方法时,会导致错误。 Dual inteces (双重接口)
双重接口既支持编译时绑定,也支持通过自动化动态绑定(运行时)。双重接口必须从IDispatch接口派- 150 -
Object inteces
生。
双重接口的所有方法(除了从IIntece和IDispatch继承的方法)必须使用safecall调用约定,并且方法的参数和返回值必须是自动化类型。(自动化类型包括Byte、Currency、Real、Double、Real48、Integer、Single、Smallint、AnsiString、TdateTime、Variant、OleVariant和WordBool)
- 151 -
Memory management
Memory management(内存管理)
Memory management: Overview(概述)
注意:Linux使用glibc函数,比如malloc,进行内存管理。要了解更多信息,请参考Linux系统
关于malloc的帮助文件。
在Windows系统下,内存管理器负责程序中所有的动态内存分配和回收。New、Dispose、GetMem、ReallocMem和FreeMem标准过程使用内存管理器,所有的对象和长字符串也通过内存管理器来进行分配。
在Windows下,对于面向对象的程序和处理字符数据的程序,典型情况下,它们需要分配大量的较小或中等大小的内存块,内存管理器对这种情况进行了优化。而其它的内存管理器,象GlobalAlloc和LocalAlloc的实现方式以及Windows支持的私有堆,在这种情形下性能并不好,当直接使用时,会降低程序速度。
为确保最好的性能,内存管理器直接和Win32虚拟内存API(VirtualAlloc和VirtualFree函数)打交道。内存管理器从操作系统中保留(reserve)地址空间时,以1MB为一节(单位);当需要提交(commit)物理内存时,以16KB的幅度进行。当释放内存和地址空间时,也是以16KB和1MB为单位的。对于更小的(内存)块,在已提交的内存中进行再分配。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-23665-113.html
多去贴吧了解下真实实力不懂不要紧
叙利亚等
大陆一直在等机会