Winapi Nasm-有故障的win32n.inc不';是否在结构定义中为数组保留空间?

Winapi Nasm-有故障的win32n.inc不';是否在结构定义中为数组保留空间?,winapi,assembly,x86,nasm,Winapi,Assembly,X86,Nasm,编辑:来自的Win32n.inc无法处理数组。搜索.inc文件时,请从其他地方获取它!这应该可以防止这些错误 我在我的win32n.inc(以及互联网上的所有其他)中发现了一些似乎有点奇怪的东西: 浮动保存区域声明为: STRUC FLOATING_SAVE_AREA .ControlWord RESD 1 .StatusWord RESD 1 .TagWord RESD 1 .ErrorOffset RESD 1 .ErrorSelector RESD 1 .DataOffset RESD 1

编辑:来自的Win32n.inc无法处理数组。搜索.inc文件时,请从其他地方获取它!这应该可以防止这些错误

我在我的win32n.inc(以及互联网上的所有其他)中发现了一些似乎有点奇怪的东西:

浮动保存区域
声明为:

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;
typedef结构\u浮动\u保存\u区域
{
DWORD控制字;
德沃德状态词;
德沃德口号;
德沃德误差补偿;
德沃德错误选择器;
DWORD数据偏移量;
德沃德数据选择器;

BYTE RegisterArea[80];您的.inc文件似乎是由不理解数组的工具生成的


替换
.RegisterArea RESB 1

您的.inc文件似乎是由不理解数组的工具生成的


替换
.RegisterArea RESB 1

这看起来确实是个错误。您最近发布了另一个问题,其中PE IMAGE\u头定义很奇怪,可能您应该在其他地方获取包含文件或切换到其他编译器。它可能是自动生成的,并且程序会自动生成包含文件les不处理数组。你正在使用的任何包含文件都不可能被任何人认真使用,因此可能会有很多类似的未发现问题。不,你需要80个字节。
RESB 80
也许吧?如果你说一下这个副本的确切来源,这将是一个更好的问题。它只是o显然是错误的,而且很容易手工修复,所以有趣的是它正在分发,并且是谁首先编写的。这看起来确实是个错误。你最近发布了另一个问题,其中PE IMAGE_头定义很奇怪,也许你应该在其他地方获取包含文件或切换到其他编译器。这可能是一个错误自动生成并且自动生成包含文件的程序不处理数组。您正在使用的任何包含文件都不可能被任何人认真使用,因此可能会有许多类似的未发现问题。不,您需要80个字节。
RESB 80
可能?这将是一个更好的方法如果你说这本书是从哪里来的,它显然是错的,而且很容易手工修改,所以有趣的是它正在分发,最初是谁写的。