我已经声明了以下枚举类型,其中我希望第一个成员的序数值为1(一)而不是通常的0(零):
type
TMyEnum = (
meFirstValue = 1,
meSecondValue,
meThirdValue
);
Run Code Online (Sandbox Code Playgroud)
如果我调用TypeInfo(),例如作为对GetEnumName()的调用的一部分,我得到一个编译器错误:
GetEnumName(TypeInfo(TMyEnum), Ord(aValue));
Run Code Online (Sandbox Code Playgroud)
错误:"E2134:类型'TMyEnum'没有typeinfo"
为什么是这样?
我知道,类只有所属类别,如果它们与编译$ M启用编译器选项,或者(在某些类是,如获得TPersistent,但我不认为有具有所属类别的枚举类型的任何特殊情况).
我对DNSServiceRegister具有以下声明:
function DNSServiceRegister
(
var sdRef: TDNSServiceRef;
const flags: TDNSServiceFlags;
const interfaceIndex: uint32_t;
const name: PUTF8String; //* may be NULL */
const regType: PUTF8String;
const domain: PUTF8String; //* may be NULL */
const host: PUTF8String; //* may be NULL */
const port: uint16_t;
const txtLen: uint16_t;
const txtRecord: Pointer; //* may be NULL */
const callBack: TDNSServiceRegisterReply; //* may be NULL */
const context: Pointer //* may be NULL */
): TDNSServiceErrorType; stdcall; external DNSSD_DLL;
Run Code Online (Sandbox Code Playgroud)
在我的Bonjour框架中,对于已启用的已宣布服务(即实际上开始通过Bonjour宣布自身),我有以下响应:
procedure TAnnouncedService.Activate;
var
flags: …Run Code Online (Sandbox Code Playgroud)