Modify

Opened 11 years ago

Closed 11 years ago

#3048 closed Bug (No Bug)

DllStructCreate strange bug

Reported by: anonymous Owned by:
Milestone: Component: AutoIt
Version: 3.3.12.0 Severity: None
Keywords: Cc:

Description

This structure size is 512 Bytes, but when I use DllStructGetSize() to check the size, the size is wrong. Tested on 3.3.12.0 and 3.3.13.19.

If I remove one of this elements that I mark with * the size returned by DllStructGetSize() don't changes, stay in 520.

Global $setor0 = DllStructCreate( _
	'BYTE[3];' & _	;	3
	'BYTE[8];' & _	;	8 + 3	= 11
	'USHORT;' & _	;	2 + 11	= 13
	'BYTE;' & _		;	1 + 13	= 14	*
	'USHORT;' & _	;	2 + 14	= 16
	'BYTE;' & _		;	1 + 16	= 17	*
	'USHORT;' & _	;	2 + 17	= 19	*
	'USHORT;' & _	;	2 + 19	= 21	*
	'BYTE;' & _		;	1 + 21	= 22	*
	'USHORT;' & _	;	2 + 22	= 24	*
	'USHORT;' & _	;	2 + 24	= 26	*
	'USHORT;' & _	;	2 + 26	= 28	*
	'UINT;' & _		;	4 + 28	= 32
	'UINT;' & _		;	4 + 32	= 36
	'BYTE;' & _		;	1 + 36	= 37	*
	'BYTE;' & _		;	1 + 37	= 38	*
	'BYTE;' & _		;	1 + 38	= 39	*
	'UINT;' & _		;	4 + 39	= 43
	'BYTE[11];' & _	;	11 + 43	= 54
	'BYTE[8];' & _	;	8 + 54	= 62
	'BYTE[448];' & _;	448 + 62= 510
	'BYTE[2]')		;	2 + 510	= 512
MsgBox(0, '', 'Structure size: ' & DllStructGetSize($setor0) & @CRLF)	;	DllStructGetSize($setor0) is returning 520

Attachments (0)

Change History (1)

comment:1 by jchd18, 11 years ago

Resolution: No Bug
Status: newclosed

No bug here: re-read help file under DllStructCreate and look for align directive.

Global $setor0 = DllStructCreate( _
	'align 1;' & _
	'BYTE[3];' & _	;	3
	'BYTE[8];' & _	;	8 + 3	= 11
	'USHORT;' & _	;	2 + 11	= 13
	'BYTE;' & _		;	1 + 13	= 14	*
	'USHORT;' & _	;	2 + 14	= 16
	'BYTE;' & _		;	1 + 16	= 17	*
	'USHORT;' & _	;	2 + 17	= 19	*
	'USHORT;' & _	;	2 + 19	= 21	*
	'BYTE;' & _		;	1 + 21	= 22	*
	'USHORT;' & _	;	2 + 22	= 24	*
	'USHORT;' & _	;	2 + 24	= 26	*
	'USHORT;' & _	;	2 + 26	= 28	*
	'UINT;' & _		;	4 + 28	= 32
	'UINT;' & _		;	4 + 32	= 36
	'BYTE;' & _		;	1 + 36	= 37	*
	'BYTE;' & _		;	1 + 37	= 38	*
	'BYTE;' & _		;	1 + 38	= 39	*
	'UINT;' & _		;	4 + 39	= 43
	'BYTE[11];' & _	;	11 + 43	= 54
	'BYTE[8];' & _	;	8 + 54	= 62
	'BYTE[448];' & _;	448 + 62= 510
	'BYTE[2]')		;	2 + 510	= 512
MsgBox(0, '', 'Structure size: ' & DllStructGetSize($setor0) & @CRLF)	;	DllStructGetSize($setor0) is returning 520

Next time use GHS forum to ask questions.

Modify Ticket

Action
as closed The ticket will remain with no owner.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.