【发布时间】:2021-03-28 18:58:25
【问题描述】:
我在将结构从 C++ 转换为 Delphi 时遇到问题。
在 C++ 标头中,结构的三个字段具有到枚举值的字节数组。 我假设它是顺序值,因为枚举没有值。
//Part of struct declaring a byte array of NET_COLOR_TYPE_MAX
BYTE byColorSimilar[NET_COLOR_TYPE_MAX];// Object color similarity, the range :0-100, represents an array subscript Colors, see EM_COLOR_TYPE,
BYTE byUpperBodyColorSimilar[NET_COLOR_TYPE_MAX]; // When upper body color similarity (valid object type man ,
BYTE byLowerBodyColorSimilar[NET_COLOR_TYPE_MAX]; // Lower body color similarity when objects (object type human valid ,
枚举具有NET_COLOR_TYPE_MAX
// color type
typedef enum
{
NET_COLOR_TYPE_RED, // red
NET_COLOR_TYPE_YELLOW, // yellow
NET_COLOR_TYPE_GREEN, // green
NET_COLOR_TYPE_CYAN, // cyan
NET_COLOR_TYPE_BLUE, // glue
NET_COLOR_TYPE_PURPLE, // purple
NET_COLOR_TYPE_BLACK, // black
NET_COLOR_TYPE_WHITE, // white
NET_COLOR_TYPE_MAX,
}EM_COLOR_TYPE;
我尝试使用XXX : array[0..99] of byte,因为第一个声明中的 cmets 说:范围:0-100,但指针结果是错位的数据。
如何在 Delphi 中声明这个变量?使用枚举顺序作为值?如:NET_COLOR_TYPE_RED 为 0,NET_COLOR_TYPE_MAX 为 8)
【问题讨论】: