LeeRekka Posted December 15, 2010 Posted December 15, 2010 Hello, why only byte work? how set data for short or int?, I thank you at once Example: expandcollapse popup$d = Binary("0x00112233445566778899AABBCCDDEEFF") $s = BinaryLen($d) ; BYTE 8bit(1byte) unsigned char $dsc = DllStructCreate("byte data[" & $s & "]") DllStructSetData($dsc,"data",$d) ConsoleWrite("byte: ") For $i = 1 To $s Step 1 $dsgd = DllStructGetData($dsc, "data",$i) ConsoleWrite(Hex($dsgd,2) & " ") Next ConsoleWrite(@CRLF) ; short 16bit(2bytes) signed integer $dsc = DllStructCreate("short data[" & $s & "]") DllStructSetData($dsc,"data",$d) ConsoleWrite("short: ") For $i = 1 To $s Step 1 $dsgd = DllStructGetData($dsc, "data",$i) ConsoleWrite(Hex($dsgd,4) & " ") Next ConsoleWrite(@CRLF) ; USHORT 16bit(2bytes) unsigned integer $dsc = DllStructCreate("ushort data[" & $s & "]") DllStructSetData($dsc,"data",$d) ConsoleWrite("ushort: ") For $i = 1 To $s Step 1 $dsgd = DllStructGetData($dsc, "data",$i) ConsoleWrite(Hex($dsgd,4) & " ") Next ConsoleWrite(@CRLF) ; int 32bit(4bytes) signed integer $dsc = DllStructCreate("int data[" & $s & "]") DllStructSetData($dsc,"data",$d) ConsoleWrite("int: ") For $i = 1 To $s Step 1 $dsgd = DllStructGetData($dsc, "data",$i) ConsoleWrite(Hex($dsgd,8) & " ") Next ConsoleWrite(@CRLF) ; UINT 32bit(4bytes) unsigned integer $dsc = DllStructCreate("uint data[" & $s & "]") DllStructSetData($dsc,"data",$d) ConsoleWrite("uint: ") For $i = 1 To $s Step 1 $dsgd = DllStructGetData($dsc, "data",$i) ConsoleWrite(Hex($dsgd,8) & " ") Next ConsoleWrite(@CRLF)
Yashied Posted December 15, 2010 Posted December 15, 2010 $bData = Binary('0x00112233445566778899AABBCCDDEEFF') $iLen = BinaryLen($bData) ; "byte" 8bit(1byte) unsigned char $tByte = DllStructCreate('byte Data[' & $iLen & ']') DllStructSetData($tByte, 'Data', $bData) ConsoleWrite('byte: ') For $i = 1 To $iLen ConsoleWrite(Hex(DllStructGetData($tByte, 'Data', $i), 2) & ' ') Next ConsoleWrite(@CRLF) ; "int" 32bit(4bytes) signed integer $tInt = DllStructCreate('int Data[' & Round($iLen / 4) & ']', DllStructGetPtr($tByte)) ConsoleWrite('int: ') For $i = 1 To Round($iLen / 4) ConsoleWrite(Hex(DllStructGetData($tInt, 'Data', $i)) & ' ') Next ConsoleWrite(@CRLF) My UDFs: iKey | FTP Uploader | Battery Checker | Boot Manager | Font Viewer | UDF Keyword Manager | Run Dialog Replacement | USBProtect | 3D Axis | Calculator | Sleep | iSwitcher | TM | NetHelper | File Types Manager | Control Viewer | SynFolders | DLL Helper Animated Tray Icons UDF Library | Hotkeys UDF Library | Hotkeys Input Control UDF Library | Caret Shape UDF Library | Context Help UDF Library | Most Recently Used List UDF Library | Icons UDF Library | FTP UDF Library | Script Communications UDF Library | Color Chooser UDF Library | Color Picker Control UDF Library | IPHelper (Vista/7) UDF Library | WinAPI Extended UDF Library | WinAPIVhd UDF Library | Icon Chooser UDF Library | Copy UDF Library | Restart UDF Library | Event Log UDF Library | NotifyBox UDF Library | Pop-up Windows UDF Library | TVExplorer UDF Library | GuiHotKey UDF Library | GuiSysLink UDF Library | Package UDF Library | Skin UDF Library | AITray UDF Library | RDC UDF Library Appropriate path | Button text color | Gaussian random numbers | Header's styles (Vista/7) | ICON resource enumeration | Menu & INI | Tabbed string size | Tab's skin | Pop-up circular menu | Progress Bar without animation (Vista/7) | Registry export | Registry path jumping | Unique hardware ID | Windows alignment More...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now