Nowe posty

xx Problem ze sterownikami. (5)
2024-04-13, 21:25:16
xx Instalacja xfce4 (2)
2024-04-13, 16:20:17
xx Serie kompilacji bez instalacji dla “emerge” w Gentoo (2)
2024-04-08, 18:40:04
xx Plasma 6 w Neonie ssie trochę mniej ... (17)
2024-04-05, 10:03:46
xx Problem z Linux Lite po instalacji (3)
2024-04-03, 14:23:40
xx Jak właczyć num locka przy starcie systemu debian 12? (12)
2024-04-02, 17:43:54
xx Brak dźwieku w systemie. (5)
2024-04-02, 16:13:41
xx Dystrybucja pod HP Omen (7)
2024-03-29, 11:33:05
xx [Poradnik] Wyszukiwanie Sterowników (2)
2024-03-27, 21:08:23
xx Ile pingwinów? (1)
2024-03-27, 08:59:24

Autor Wątek: gcc: expected specifier-qualifier-list before ‘IMAGE_DATA_DIRECTORY’  (Przeczytany 3128 razy)

  • Gość
Cytuj
tomasz@darkstar:~$ gcc -g -o test test.c
In file included from test.c:4:
struct.h:33: error: expected specifier-qualifier-list before ‘IMAGE_FILE_HEADER’
struct.h:88: error: expected specifier-qualifier-list before ‘IMAGE_DATA_DIRECTORY’
Co może coś takiego znaczyć. Sprawdzałem dane miejsce i nic...

#define IMAGE_SIZEOF_SHORT_NAME 8
#pragma pack(push)
#pragma pack (1)

typedef struct _IMAGE_DOS_HEADER {
short int e_magic;
short int e_cblp;
short int e_cp;
short int e_crlc;
short int e_cparhdr;
short int e_minalloc;
short int e_maxalloc;
short int e_ss;
short int e_sp;
short int e_csum;
short int e_ip;
short int e_cs;
short int e_lfarlc;
short int e_ovno;
short int e_res[4];
short int e_oemid;
short int e_oeminfo;
short int e_res2[10];
short int e_elfanew;
} IMAGE_DOS_HEADER;

#pragma pack(pop)

#pragma pack(push)
#pragma pack(1)
typedef struct _IMAGE_NT_HEADERS {
int  Signature;
IMAGE_FILE_HEADER FileHeader;
IMAGE_OPTIONAL_HEADER OptionalHeader;
} IMAGE_NT_HEADERS;

#pragma pack(pop)

#pragma pack (push)
#pragma pack (1)

typedef struct _IMAGE_FILE_HEADER {
short int Machine;
short int NumberOfSections;
int TimeDateStamp;
int PointerToSymbolTable;
int NumberOfSymbols;
short int SizeOfOptionalHeader;
short int Characteristics;
} IMAGE_FILE_HEADER;

#pragma pack(pop)

#pragma pack(push)
#pragma pack(1)

typedef struct _IMAGE_OPTIONAL_HEADER {
short int Magic;
char MajorLinkerVersion;
char MinorLinkerVersion;
int SizeOfCode;
int SizeOfInitializedData;
int SizeOfUninitializedData;
int AddressOfEntryPoint;
int BaseOfCode;
int BaseOfData;
int ImageBase;
int SectionAlignment;
int FileAlignment;
short int MajorOperatingSystemVersion;
short int MinorOperatingSystemVersion;
short int MajorImageVersion;
short int MinorImageVersion;
short int MajorSubsystemVersion;
short int MinorSubsystemVersion;
int Reserved1;
int SizeOfImage;
int SizeOfHeaders;
int CheckSum;
short int Subsystem;
short int DllCharacteristics;
int SizeOfStackReserve;
int SizeOfStackCommit;
int SizeOfHeapReserve;
int SizeOfHeapCommit;
int LoaderFlags;
int NumberOfRvaAndSizes;
IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES];
} IMAGE_OPTIONAL_HEADER;

#pragma pack (pop)


#pragma pack(push)
#pragma pack(1)


typedef struct _IMAGE_DATA_DIRECTORY{
int VirtualAddress;
int Size;
} IMAGE_DATA_DIRECTORY;


#pragma pack(pop)


#pragma pack(push)
#pragma pack(1)

typedef struct _IMAGE_SECTION_HEADER {
char Name[IMAGE_SIZEOF_SHORT_NAME];
union {
int PhysicalAddress;
int VirtualSize;
} Misc;
int VirtualAddress;
int SizeOfRawData;
int PointerToRawData;
int PointerToRelocations;
int PointerToLinenumbers;
short int NumberOfRelocations;
short int NumberOfLinenumbers;
int Characteristics;
} IMAGE_SECTION_HEADER;

#pragma pack(pop)

jk33

  • Gość
gcc: expected specifier-qualifier-list before ‘IMAGE_DATA_DIRECTORY’
« Odpowiedź #1 dnia: 2010-12-30, 11:20:02 »
Kolejność pojawiania się deklaracji ma znaczenie.
Nie możesz używać danego typu zanim go zadeklarujesz.