EDIT: Win32n.inc из link не может обрабатывать массивы.При поиске файла .inc получите его откуда-то еще!Это должно предотвратить эти ошибки.
Я нашел что-то в моем win32n.inc (и всех остальных в Интернете), что кажется немного странным:
FLOATING_SAVE_AREA
объявлено как:
STRUC FLOATING_SAVE_AREA
.ControlWord RESD 1
.StatusWord RESD 1
.TagWord RESD 1
.ErrorOffset RESD 1
.ErrorSelector RESD 1
.DataOffset RESD 1
.DataSelector RESD 1
.RegisterArea RESB 1
.Cr0NpxState RESD 1
ENDSTRUC
Что смущает меня, потому что официальное объявление в winnt.h:
typedef struct _FLOATING_SAVE_AREA
{
DWORD ControlWord;
DWORD StatusWord;
DWORD TagWord;
DWORD ErrorOffset;
DWORD ErrorSelector;
DWORD DataOffset;
DWORD DataSelector;
BYTE RegisterArea[80]; <----- this doesn't fit, does it?
DWORD Cr0NpxState;
} FLOATING_SAVE_AREA;
Так почему мой win32n.inc резервирует только 1 байт, когда он содержит массив из 80 байтов?Я знаю, что другой способ сохранить массив - это зарезервировать память только для его базового адреса.Но это также не работает, поскольку резервирует память только на 1 байт, а не на 4 байта (размер адреса).
Так как мне справиться с этим?