Xcode chockes on variable-sized arrays in struct definitions
Xcode chockes on variable-sized arrays in struct definitions
- Subject: Xcode chockes on variable-sized arrays in struct definitions
- From: Mike <email@hidden>
- Date: Tue, 23 Jan 2007 12:45:30 -0700
I have some Windows code which includes a variable-sized array of
structs in a field in one structure definition. Xcode seems to choke on
this code giving an error of "excess elements in aggregate initializer".
The code compiles fine on a Windows box using Visual Studio 2003. All
the standard Windows variable types have been mapped to the Mac.
Is there some setting in Xcode or gcc that will allow variable sized
arrays of structs?
Here is the code:
typedef enum tagDATATYPES
{
DATATYPE_UNKNOWN = 0,
DATATYPE_USER,
DATATYPE_DISPLAY_BITMAP,
DATATYPE_DISPLAY_CURSOR,
DATATYPE_SOUND,
DATATYPE_APPLICATION_ACTIVITY,
DATATYPE_URL,
DATATYPE_EMAIL_SMTP,
DATATYPE_EMAIL_POP,
DATATYPE_KEYSTROKES,
DATATYPE_KEYWORD,
DATATYPE_APPLICATION_ACTIVE, inactive
DATATYPE_USER_LOGGED_IN,
DATATYPE_USER_LOGGED_OUT,
DATATYPE_COMPUTER_INACTIVE,
DATATYPE_MICROPHONE,
DATATYPE_HTML_TEXT,
DATATYPE_CHAT,
DATATYPE_KEYWORD_REPORT,
DATATYPE_EMAIL_SCAN,
DATATYPE_EMAIL_MAPI,
DATATYPE_ERROR,
DATATYPE_PROGRAMS,
DATATYPE_P2P_SEARCH,
DATATYPE_P2P_TRANSFER,
DATATYPE_APPLICATION_NAME,
DATATYPE_APPLICATION,
DATATYPE_COMPUTER,
DATATYPE_PORT,
DATATYPE_DRIVE,
DATATYPE_EMAIL_IMAP,
DATATYPE_USER_ACTIVITY,
DATATYPE_PROPRIETARY = 256,
} DATATYPES, *PDATATYPES;
enum FieldTypes
{
FLDTYP_Unknown = 0,
FLDTYP_FixedLength, // BYTE, DWORD, fixed-length array, etc.
FLDTYP_VariableLength, // PACKET_VARLEN structure
};
typedef struct tagFieldDefinition
{
char Name[50];
FieldTypes FieldType;
DWORD Size;
PBYTE pData;
LPFN_DATA_FIELD_CALLBACK pfnCallback;
BOOL Converted;
}FieldDefinition;
struct DataDefinition
{
DATATYPES DataType;
DWORD RevLevel;
DWORD FieldCount;
FieldDefinition Field[]; // <-------------------- This seems to be
the problem structure
};
#define DEFINE_FIELD(name, type, size) name, type, size, NULL, NULL, FALSE
#define DEFINE_FIELD_CALLBACK(name, type, size, pfn) name, type, size,
NULL, pfn, FALSE
#define BaseDefinition
\
DEFINE_FIELD("Type", FLDTYP_FixedLength, 4),
\
DEFINE_FIELD("TypeLevel", FLDTYP_FixedLength, 4),
\
DEFINE_FIELD("Size", FLDTYP_FixedLength,
4), \
DEFINE_FIELD("TimeStamp", FLDTYP_FixedLength, 4),
\
DEFINE_FIELD("Param", FLDTYP_FixedLength, 4),
\
DEFINE_FIELD("UserID", FLDTYP_FixedLength, 4),
\
DEFINE_FIELD("ComputerID", FLDTYP_FixedLength, 4),
\
DEFINE_FIELD("ApplicationNameID", FLDTYP_FixedLength, 8),
\
DEFINE_FIELD("ApplicationInstanceID", FLDTYP_FixedLength, 8),
\
DEFINE_FIELD("ApplicationHashID", FLDTYP_FixedLength,
sizeof(SHAHash)), \
DEFINE_FIELD("Reserved", FLDTYP_FixedLength, 4)
#define BaseDefinitionCount 11
// This is the def Xcode chokes on
const DataDefinition MailDefinition =
{
DATATYPE_EMAIL_SMTP,
2,
BaseDefinitionCount + 7,
BaseDefinition,
DEFINE_FIELD("Boundary", FLDTYP_FixedLength, MAX_PATH * 3),
DEFINE_FIELD("Attachments", FLDTYP_FixedLength, 4),
DEFINE_FIELD("Incoming", FLDTYP_FixedLength, 4),
DEFINE_FIELD("EmailType", FLDTYP_FixedLength, 4),
DEFINE_FIELD("Flags", FLDTYP_FixedLength, 4),
DEFINE_FIELD("TypeInfo", FLDTYP_FixedLength, MAX_PATH),
DEFINE_FIELD("EmailData", FLDTYP_VariableLength, VARIABLE_SIZE)
};
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden