Modify

Opened 10 years ago

Closed 10 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 Changed 10 years ago by jchd18

  • Resolution set to No Bug
  • Status changed from new to closed

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.

Guidelines for posting comments:

  • You cannot re-open a ticket but you may still leave a comment if you have additional information to add.
  • In-depth discussions should take place on the forum.

For more information see the full version of the ticket guidelines here.

Add Comment

Modify Ticket

Action
as closed The ticket will remain with no owner.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.