Crée une structure à partir de deux structures
#include <WinAPIMisc.au3>
_WinAPI_UnionStruct ( $tStruct1, $tStruct2 [, $sStruct = ''] )
$tStruct1 | La structure qui contient les premières données source. |
$tStruct2 | La structure qui contient les secondes données source. |
$sStruct | [optionnel] La chaîne représentant la structure finale (la même que pour la fonction DllStructCreate()). |
Succès: | Retourne la structure "byte[n]" qui contient l'union des données de $tStruct1 et $tStruct2. |
Échec: | Définit @error <> 0. |
Important, vous devez prendre en compte les alignements des structures. Par exemple, "byte" & "dword" n'est pas équivalent à "byte;dword", mais équivalent à "align 1;byte;dword".
#include <WinAPIMem.au3> #include <WinAPIMisc.au3> Local $tStruct1 = DllStructCreate('byte[4]') _WinAPI_FillMemory(DllStructGetPtr($tStruct1), 4, 0xAA) Local $tStruct2 = DllStructCreate('byte[4]') _WinAPI_FillMemory(DllStructGetPtr($tStruct2), 4, 0xDD) Local $tStruct3 = _WinAPI_UnionStruct($tStruct1, $tStruct2) ConsoleWrite('First: ' & DllStructGetData($tStruct1, 1) & @CRLF) ConsoleWrite('Second: ' & DllStructGetData($tStruct2, 1) & @CRLF) ConsoleWrite('Union: ' & DllStructGetData($tStruct3, 1) & @CRLF)