📄 cvinfo.h
字号:
#define T_LONG 0x0012 // 32 bit signed
#define T_ULONG 0x0022 // 32 bit unsigned
#define T_PLONG 0x0112 // near pointer to 32 bit signed
#define T_PULONG 0x0122 // near pointer to 32 bit unsigned
#define T_PFLONG 0x0212 // far pointer to 32 bit signed
#define T_PFULONG 0x0222 // far pointer to 32 bit unsigned
#define T_PHLONG 0x0312 // huge pointer to 32 bit signed
#define T_PHULONG 0x0322 // huge pointer to 32 bit unsigned
#define T_32PLONG 0x0412 // 16:32 near pointer to 32 bit signed
#define T_32PULONG 0x0422 // 16:32 near pointer to 32 bit unsigned
#define T_32PFLONG 0x0512 // 16:32 far pointer to 32 bit signed
#define T_32PFULONG 0x0522 // 16:32 far pointer to 32 bit unsigned
// 32 bit int types
#define T_INT4 0x0074 // 32 bit signed int
#define T_UINT4 0x0075 // 32 bit unsigned int
#define T_PINT4 0x0174 // near pointer to 32 bit signed int
#define T_PUINT4 0x0175 // near pointer to 32 bit unsigned int
#define T_PFINT4 0x0274 // far pointer to 32 bit signed int
#define T_PFUINT4 0x0275 // far pointer to 32 bit unsigned int
#define T_PHINT4 0x0374 // huge pointer to 32 bit signed int
#define T_PHUINT4 0x0375 // huge pointer to 32 bit unsigned int
#define T_32PINT4 0x0474 // 16:32 near pointer to 32 bit signed int
#define T_32PUINT4 0x0475 // 16:32 near pointer to 32 bit unsigned int
#define T_32PFINT4 0x0574 // 16:32 far pointer to 32 bit signed int
#define T_32PFUINT4 0x0575 // 16:32 far pointer to 32 bit unsigned int
// 64 bit quad types
#define T_QUAD 0x0013 // 64 bit signed
#define T_UQUAD 0x0023 // 64 bit unsigned
#define T_PQUAD 0x0113 // near pointer to 64 bit signed
#define T_PUQUAD 0x0123 // near pointer to 64 bit unsigned
#define T_PFQUAD 0x0213 // far pointer to 64 bit signed
#define T_PFUQUAD 0x0223 // far pointer to 64 bit unsigned
#define T_PHQUAD 0x0313 // huge pointer to 64 bit signed
#define T_PHUQUAD 0x0323 // huge pointer to 64 bit unsigned
#define T_32PQUAD 0x0413 // 16:32 near pointer to 64 bit signed
#define T_32PUQUAD 0x0423 // 16:32 near pointer to 64 bit unsigned
#define T_32PFQUAD 0x0513 // 16:32 far pointer to 64 bit signed
#define T_32PFUQUAD 0x0523 // 16:32 far pointer to 64 bit unsigned
// 64 bit int types
#define T_INT8 0x0076 // 64 bit signed int
#define T_UINT8 0x0077 // 64 bit unsigned int
#define T_PINT8 0x0176 // near pointer to 64 bit signed int
#define T_PUINT8 0x0177 // near pointer to 64 bit unsigned int
#define T_PFINT8 0x0276 // far pointer to 64 bit signed int
#define T_PFUINT8 0x0277 // far pointer to 64 bit unsigned int
#define T_PHINT8 0x0376 // huge pointer to 64 bit signed int
#define T_PHUINT8 0x0377 // huge pointer to 64 bit unsigned int
#define T_32PINT8 0x0476 // 16:32 near pointer to 64 bit signed int
#define T_32PUINT8 0x0477 // 16:32 near pointer to 64 bit unsigned int
#define T_32PFINT8 0x0576 // 16:32 far pointer to 64 bit signed int
#define T_32PFUINT8 0x0577 // 16:32 far pointer to 64 bit unsigned int
#if CC_BIGINT
// 128 bit octet types
#define T_OCT 0x0014 // 128 bit signed
#define T_UOCT 0x0024 // 128 bit unsigned
#define T_POCT 0x0114 // near pointer to 128 bit signed
#define T_PUOCT 0x0124 // near pointer to 128 bit unsigned
#define T_PFOCT 0x0214 // far pointer to 128 bit signed
#define T_PFUOCT 0x0224 // far pointer to 128 bit unsigned
#define T_PHOCT 0x0314 // huge pointer to 128 bit signed
#define T_PHUOCT 0x0324 // huge pointer to 128 bit unsigned
#define T_32POCT 0x0414 // 16:32 near pointer to 128 bit signed
#define T_32PUOCT 0x0424 // 16:32 near pointer to 128 bit unsigned
#define T_32PFOCT 0x0514 // 16:32 far pointer to 128 bit signed
#define T_32PFUOCT 0x0524 // 16:32 far pointer to 128 bit unsigned
// 128 bit int types
#define T_INT16 0x0078 // 128 bit signed int
#define T_UINT16 0x0079 // 128 bit unsigned int
#define T_PINT16 0x0178 // near pointer to 128 bit signed int
#define T_PUINT16 0x0179 // near pointer to 128 bit unsigned int
#define T_PFINT16 0x0278 // far pointer to 128 bit signed int
#define T_PFUINT16 0x0279 // far pointer to 128 bit unsigned int
#define T_PHINT16 0x0378 // huge pointer to 128 bit signed int
#define T_PHUINT16 0x0379 // huge pointer to 128 bit unsigned int
#define T_32PINT16 0x0478 // 16:32 near pointer to 128 bit signed int
#define T_32PUINT16 0x0479 // 16:32 near pointer to 128 bit unsigned int
#define T_32PFINT16 0x0578 // 16:32 far pointer to 128 bit signed int
#define T_32PFUINT16 0x0579 // 16:32 far pointer to 128 bit unsigned int
#endif
// 32 bit real types
#define T_REAL32 0x0040 // 32 bit real
#define T_PREAL32 0x0140 // near pointer to 32 bit real
#define T_PFREAL32 0x0240 // far pointer to 32 bit real
#define T_PHREAL32 0x0340 // huge pointer to 32 bit real
#define T_32PREAL32 0x0440 // 16:32 near pointer to 32 bit real
#define T_32PFREAL32 0x0540 // 16:32 far pointer to 32 bit real
// 48 bit real types
#define T_REAL48 0x0044 // 48 bit real
#define T_PREAL48 0x0144 // near pointer to 48 bit real
#define T_PFREAL48 0x0244 // far pointer to 48 bit real
#define T_PHREAL48 0x0344 // huge pointer to 48 bit real
#define T_32PREAL48 0x0444 // 16:32 near pointer to 48 bit real
#define T_32PFREAL48 0x0544 // 16:32 far pointer to 48 bit real
// 64 bit real types
#define T_REAL64 0x0041 // 64 bit real
#define T_PREAL64 0x0141 // near pointer to 64 bit real
#define T_PFREAL64 0x0241 // far pointer to 64 bit real
#define T_PHREAL64 0x0341 // huge pointer to 64 bit real
#define T_32PREAL64 0x0441 // 16:32 near pointer to 64 bit real
#define T_32PFREAL64 0x0541 // 16:32 far pointer to 64 bit real
// 80 bit real types
#define T_REAL80 0x0042 // 80 bit real
#define T_PREAL80 0x0142 // near pointer to 80 bit real
#define T_PFREAL80 0x0242 // far pointer to 80 bit real
#define T_PHREAL80 0x0342 // huge pointer to 80 bit real
#define T_32PREAL80 0x0442 // 16:32 near pointer to 80 bit real
#define T_32PFREAL80 0x0542 // 16:32 far pointer to 80 bit real
// 128 bit real types
#define T_REAL128 0x0043 // 128 bit real
#define T_PREAL128 0x0143 // near pointer to 128 bit real
#define T_PFREAL128 0x0243 // far pointer to 128 bit real
#define T_PHREAL128 0x0343 // huge pointer to 128 bit real
#define T_32PREAL128 0x0443 // 16:32 near pointer to 128 bit real
#define T_32PFREAL128 0x0543 // 16:32 far pointer to 128 bit real
// 32 bit complex types
#define T_CPLX32 0x0050 // 32 bit complex
#define T_PCPLX32 0x0150 // near pointer to 32 bit complex
#define T_PFCPLX32 0x0250 // far pointer to 32 bit complex
#define T_PHCPLX32 0x0350 // huge pointer to 32 bit complex
#define T_32PCPLX32 0x0450 // 16:32 near pointer to 32 bit complex
#define T_32PFCPLX32 0x0550 // 16:32 far pointer to 32 bit complex
// 64 bit complex types
#define T_CPLX64 0x0051 // 64 bit complex
#define T_PCPLX64 0x0151 // near pointer to 64 bit complex
#define T_PFCPLX64 0x0251 // far pointer to 64 bit complex
#define T_PHCPLX64 0x0351 // huge pointer to 64 bit complex
#define T_32PCPLX64 0x0451 // 16:32 near pointer to 64 bit complex
#define T_32PFCPLX64 0x0551 // 16:32 far pointer to 64 bit complex
// 80 bit complex types
#define T_CPLX80 0x0052 // 80 bit complex
#define T_PCPLX80 0x0152 // near pointer to 80 bit complex
#define T_PFCPLX80 0x0252 // far pointer to 80 bit complex
#define T_PHCPLX80 0x0352 // huge pointer to 80 bit complex
#define T_32PCPLX80 0x0452 // 16:32 near pointer to 80 bit complex
#define T_32PFCPLX80 0x0552 // 16:32 far pointer to 80 bit complex
// 128 bit complex types
#define T_CPLX128 0x0053 // 128 bit complex
#define T_PCPLX128 0x0153 // near pointer to 128 bit complex
#define T_PFCPLX128 0x0253 // far pointer to 128 bit complex
#define T_PHCPLX128 0x0353 // huge pointer to 128 bit real
#define T_32PCPLX128 0x0453 // 16:32 near pointer to 128 bit complex
#define T_32PFCPLX128 0x0553 // 16:32 far pointer to 128 bit complex
// boolean types
#define T_BOOL08 0x0030 // 8 bit boolean
#define T_BOOL16 0x0031 // 16 bit boolean
#define T_BOOL32 0x0032 // 32 bit boolean
#define T_BOOL64 0x0033 // 64 bit boolean
#define T_PBOOL08 0x0130 // near pointer to 8 bit boolean
#define T_PBOOL16 0x0131 // near pointer to 16 bit boolean
#define T_PBOOL32 0x0132 // near pointer to 32 bit boolean
#define T_PBOOL64 0x0133 // near pointer to 64 bit boolean
#define T_PFBOOL08 0x0230 // far pointer to 8 bit boolean
#define T_PFBOOL16 0x0231 // far pointer to 16 bit boolean
#define T_PFBOOL32 0x0232 // far pointer to 32 bit boolean
#define T_PFBOOL64 0x0233 // far pointer to 64 bit boolean
#define T_PHBOOL08 0x0330 // huge pointer to 8 bit boolean
#define T_PHBOOL16 0x0331 // huge pointer to 16 bit boolean
#define T_PHBOOL32 0x0332 // huge pointer to 32 bit boolean
#define T_PHBOOL64 0x0333 // huge pointer to 64 bit boolean
#define T_32PBOOL08 0x0430 // 16:32 near pointer to 8 bit boolean
#define T_32PFBOOL08 0x0530 // 16:32 far pointer to 8 bit boolean
#define T_32PBOOL16 0x0431 // 16:32 near pointer to 18 bit boolean
#define T_32PFBOOL16 0x0531 // 16:32 far pointer to 16 bit boolean
#define T_32PBOOL32 0x0432 // 16:32 near pointer to 32 bit boolean
#define T_32PFBOOL32 0x0532 // 16:32 far pointer to 32 bit boolean
#define T_32PBOOL64 0x0433 // 16:32 near pointer to 64 bit boolean
#define T_32PFBOOL64 0x0533 // 16:32 far pointer to 64 bit boolean
#define T_NCVPTR 0x01f0 // CV Internal type for created near pointers
#define T_FCVPTR 0x02f0 // CV Internal type for created far pointers
#define T_HCVPTR 0x03f0 // CV Internal type for created huge pointers
#define T_32NCVPTR 0x04f0 // CV Internal type for created near 32-bit pointers
#define T_32FCVPTR 0x05f0 // CV Internal type for created far 32-bit pointers
#define T_64NCVPTR 0x06f0 // CV Internal type for created near 64-bit pointers
#define CV_IS_INTERNAL_PTR(typ) (CV_IS_PRIMITIVE(typ) && \
CV_TYPE(typ) == CV_CVRESERVED && \
CV_TYP_IS_PTR(typ))
/** No leaf index can have a value of 0x0000. The leaf indices are
* separated into ranges depending upon the use of the type record.
* The second range is for the type records that are directly referenced
* in symbols. The first range is for type records that are not
* referenced by symbols but instead are referenced by other type
* records. All type records must have a starting leaf index in these
* first two ranges. The third range of leaf indices are used to build
* up complex lists such as the field list of a class type record. No
* type record can begin with one of the leaf indices. The fourth ranges
* of type indices are used to represent numeric data in a symbol or
* type record. These leaf indices are greater than 0x8000. At the
* point that type or symbol processor is expecting a numeric field, the
* next two bytes in the type record are examined. If the value is less
* than 0x8000, then the two bytes contain the numeric value. If the
* value is greater than 0x8000, then the data follows the leaf index in
* a format specified by the leaf index. The final range of leaf indices
* are used to force alignment of subfields within a complex type record..
*/
// leaf indices starting records but referenced from symbol records
#define LF_VTSHAPE 0x000a
#define LF_COBOL0 0x000b
#define LF_COBOL1 0x000c
#define LF_LABEL 0x000e
#define LF_NULL 0x000f
#define LF_NOTTRAN 0x0010
#define LF_ENDPRECOMP 0x0014 // not referenced from symbol
#define LF_TYPESERVER 0x0016 // not referenced from symbol
// leaf indices starting records but referenced only from type records
#define LF_LIST 0x0203
#define LF_REFSYM 0x020c
#define LF_ENUMERATE 0x0403
#define LF_MODIFIER 0x1001
#define LF_POINTER 0x1002
#define LF_ARRAY 0x1003
#define LF_CLASS 0x1004
#define LF_STRUCTURE 0x1005
#define LF_UNION 0x1006
#define LF_ENUM 0x1007
#define LF_PROCEDURE 0x1008
#define LF_MFUNCTION 0x1009
#define LF_BARRAY 0x100b
#define LF_DIMARRAY 0x100c
#define LF_VFTPATH 0x100d
#define LF_PRECOMP 0x100e // not referenced from symbol
#define LF_OEM 0x100f // oem definable type string
#define LF_SKIP 0x1200
#define LF_ARGLIST 0x1201
#define LF_DEFARG 0x1202
#define LF_FIELDLIST 0x1203
#define LF_DERIVED 0x1204
#define LF_BITFIELD 0x1205
#define LF_METHODLIST 0x1206
#define LF_DIMCONU 0x1207
#define LF_DIMCONLU 0x1208
#define LF_DIMVARU 0x1209
#define LF_DIMVARLU 0x120a
#define LF_BCLASS 0x1400
#define LF_VBCLASS 0x1401
#define LF_IVBCLASS 0x1402
#define LF_FRIENDFCN 0x1403
#define LF_INDEX 0x1404
#define LF_MEMBER 0x1405
#define LF_STMEMBER 0x1406
#define LF_METHOD 0x1407
#define LF_NESTTYPE 0x1408
#define LF_VFUNCTAB 0x1409
#define LF_FRIENDCLS 0x140a
#define LF_ONEMETHOD 0x140b
#define LF_VFUNCOFF 0x140c
#define LF_NESTTYPEEX 0x140d
#define LF_MEMBERMODIFY 0x140e
#define LF_NUMERIC 0x8000
#define LF_CHAR 0x8000
#define LF_SHORT 0x8001
#define LF_USHORT 0x8002
#define LF_LONG 0x8003
#define LF_ULONG 0x8004
#define LF_REAL32 0x8005
#define LF_REAL64 0x8006
#define LF_REAL80 0x8007
#define LF_REAL128 0x8008
#define LF_QUADWORD 0x8009
#define LF_UQUADWORD 0x800a
#define LF_REAL48 0x800b
#define LF_COMPLEX32 0x800c
#define LF_COMPLEX64 0x800d
#define LF_COMPLEX80 0x800e
#define LF_COMPLEX128 0x800f
#define LF_VARSTRING 0x8010
#if CC_BIGINT
#define LF_OCTWORD 0x8017
#define LF_UOCTWORD 0x8018
#endif
#define LF_PAD0 0xf0
#define LF_PAD1 0xf1
#define LF_PAD2 0xf2
#define LF_PAD3 0xf3
#define LF_PAD4 0xf4
#define LF_PAD5 0xf5
#define LF_PAD6 0xf6
#define LF_PAD7 0xf7
#define LF_PAD8 0xf8
#define LF_PAD9 0xf9
#define LF_PAD10 0xfa
#define LF_PAD11 0xfb
#define LF_PAD12 0xfc
#define LF_PAD13 0xfd
#define LF_PAD14 0xfe
#define LF_PAD15 0xff
// end of leaf indices
// Type enum for pointer records
// Pointers can be one of the following types
typedef enum CV_ptrtype_e {
CV_PTR_NEAR = 0x00, // near pointer
CV_PTR_FAR = 0x01, // far pointer
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -