b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

pascal 视频教程_pascal和basic_pascal选择排序(106)

电脑杂谈  发布时间:2016-12-28 07:02:37  来源:网络整理

function Realloc(P: Pointer; Size: Integer): Pointer; stdcall;

procedure Free(P: Pointer); stdcall;

function GetSize(P: Pointer): Integer; stdcall;

function DidAlloc(P: Pointer): Integer; stdcall;

procedure HeapMinimize; stdcall;

end;

在某些接口声明中,intece关键字被换成了dispintece,这种构造(连同dispid、readonly

指示字)是平台相关的,不能在Linux程序中使用。 writeonly

- 141 - 和

Object inteces

IIntece and inheritance(接口和继承)

接口和类一样,继承它的祖先所有的方法;但接口不象类,它们不实现方法。一个接口继承的是实现这些方法的义务,把这个义务委托给支持此接口的任何一个类。

声明一个接口时可以指定一个祖先接口,如果没有指明的话,则它直接继承自IIntece。IIntece在System单元定义,是其它所有接口的根类。IIntece定义了三个方法:QueryIntece、_AddRef和_Release。

注意:IIntece和IUnknown是相同的。考虑到平台无关性,通常要使用IIntece;IUnknown最好用在一些特殊的程序中,它依赖于Windows平台。

QueryIntece支持在一个对象所实现的不同接口之间自由跳转;_AddRef和_Release为接口引用提供生命期内存管理。实现这三个方法最简单的方式是从TIntecedObject(在System单元声明)派生一个类。若在实现这些方法时使用空函数,就可以忽略它们,但COM对象(只适用于Windows)必须通过_AddRef和_Release进行管理。

Intece identification(接口标志)

一个接口声明可指定一个全局唯一标识符(GUID),它用一个被中括号括起来的字符串表示,它出现在接口的成员之前。GUID部分以如下形式声明:

['{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}']

GUID是一个16字节的二进制数,它唯一地标识一个接口。如果一个接口有GUID,则可以通过查询接口来获得它的实现的引用。

TGUID和PGUID在System单元声明,用来对GUID进行操作。

type

PGUID = ^TGUID;

TGUID = packed record

D1: Longword;

D2: Word;

D3: Word;

D4: array[0..7] of Byte;

end;

当你声明一个TGUID类型的常量时,可以用字符表示它的值,例如

const IID_IMalloc: TGUID = '{00000002-0000-0000-C000-000000000046}';

在调用过程或函数时,GUID或者一个接口的名称(标识)都可以作为TGUID类型的值参或常量参数。例如下面的声明

function Supports(Unknown: IIntece; const IID: TGUID): Boolean;

Supports函数可以用下面的两种方法进行调用:

if Supports(Allocator, IMalloc) then ... //接口名称

if Supports(Allocator, IID_IMalloc) then ... //GUID常量


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-23665-106.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...