【Delphi】中COM对应Delphi原生数据类型表

        在类型库编辑器中,根据您使用的是IDL还是Delphi,您可以使用不同的类型标识符。在“环境选项”对话框中指定要使用的语言。
        以下类型在COM开发的类型库中有效。Automation compatible列指定该类型是否可以由选中了Automation或Dispinterface标志的接口使用。以下是COM可以通过类型库自动封装的类型:

Delphi typeIDL typeVariant typeAutomation compatibleDescription

Smallint

short

VT_I2

Yes

2-byte signed integer

Integer

long

VT_I4

Yes

4-byte signed integer

Single

single

VT_R4

Yes

4-byte real

Double

double

VT_R8

Yes

8-byte real

Currency

CURRENCY

VT_CY

Yes

currency

TDateTime

DATE

VT_DATE

Yes

date

WideString

BSTR

VT_BSTR

Yes

binary string

IDispatch

IDispatch

VT_DISPATCH

Yes

pointer to IDispatch interface

SCODE

SCODE

VT_ERROR

Yes

Ole Error Code

WordBool

VARIANT_BOOL

VT_BOOL

Yes

True = -1, False = 0

OleVariant

VARIANT

VT_VARIANT

Yes

Ole Variant

IUnknown

IUnknown

VT_UNKNOWN

Yes

pointer to IUnknown interface

Shortint

byte

VT_I1

No

1 byte signed integer

Byte

unsigned char

VT_UI1

Yes

1-byte unsigned integer

Word

unsigned short

VT_UI2

Yes*

2-byte unsigned integer

LongWord

unsigned long

VT_UI4

Yes*

4-byte unsigned integer

Int64

__int64

VT_I8

No

8-byte signed integer

Largeuint

uint64

VT_UI8

No

8-byte unsigned integer

SYSINT

int

VT_INT

Yes*

system dependent integer (Win32=Integer)

SYSUINT

unsigned int

VT_UINT

Yes*

system-dependent unsigned integer

HResult

HRESULT

VT_HRESULT

No

32-bit error code

Pointer

VT_PTR -> VT_VOID

No

untyped pointer

SafeArray

SAFEARRAY

VT_SAFEARRAY

No

OLE Safe Array

PAnsiChar

LPSTR

VT_LPSTR

No

pointer to Char

PChar

LPWSTR

VT_LPWSTR

No

pointer to WideChar

PWideChar

LPWSTR

VT_LPWSTR

No

pointer to WideChar

注意:

        Word、LongWord、SYSINT和SYSUINT可能与某些应用程序兼容。

Byte(VT_UI1)与Automation兼容,但在Variant或OleVariant中不允许使用,因为许多Automation服务器无法正确处理此值。

除了这些IDL类型之外,在库中定义或在引用的库中定义的任何接口和类型都可以在类型库定义中使用。
类型库编辑器以二进制形式将类型信息存储在生成的类型库(.TLB)文件中。
如果将参数类型指定为指针类型,则类型库编辑器通常会将该类型转换为变量参数。保存类型库时,变量参数的关联ElemDesc的IDL标志标记为IDL_FIN或IDL_FOUT。
通常,当类型前面有指针时,ElemDesc IDL标志不会用IDL_FIN或IDL_FOUT标记。或者,在dispinterfaces的情况下,通常不使用IDL标志。在这些情况下,您可能会在变量标识符旁边看到注释,例如{IDL_None}或{IDL_In}。保存类型库时使用这些注释来正确标记IDL标志。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海纳老吴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值