markyrocks Posted January 2, 2020 Share Posted January 2, 2020 (edited) So lately I've just been playing around with arrays and the struct associated functions built into autoit just for fun and as a learning experience. So this has all kinda brought me to the ptr() function. It seems simple enough. My only real question about it is there anyway to read the data contained in the pointer without it being inside of a struct? I haven't really had time to play around with it. Last night I was playing around with creating structs in autoit which just seems overly complicated. I really only say that bc of the need to define each variable type and name b4 its able to be created. I guess its possible to make this dynamic. I guess I need more time to wrap my mind around it. I'd have thought someone would have made a wrapper for the existing struct functions to make them easier to use. Edited January 2, 2020 by markyrocks Duh Spoiler "I Believe array math to be potentially fatal, I may be dying from array math poisoning" Link to comment Share on other sites More sharing options...
Danyfirex Posted January 3, 2020 Share Posted January 3, 2020 Hello. Ptr is not a function to return a pointer of a variable. So the answer to your first question is no. You don't need to define field name in dllstructures(But It's better to have a name when you work with long structures etc) You just can define data type. Saludos Danysys.com AutoIt... UDFs: VirusTotal API 2.0 UDF - libZPlay UDF - Apps: Guitar Tab Tester - VirusTotal Hash Checker Examples: Text-to-Speech ISpVoice Interface - Get installed applications - Enable/Disable Network connection PrintHookProc - WINTRUST - Mute Microphone Level - Get Connected NetWorks - Create NetWork Connection ShortCut Link to comment Share on other sites More sharing options...
markyrocks Posted January 3, 2020 Author Share Posted January 3, 2020 15 minutes ago, Danyfirex said: Hello. Ptr is not a function to return a pointer of a variable. So the answer to your first question is no. You don't need to define field name in dllstructures(But It's better to have a name when you work with long structures etc) You just can define data type. Saludos So if ptr() is not meant to return a pointer to a variable data memory address then what is its purpose exactly? I'm not well versed in pointers or even what traditional pointers are used for. I just can't wrap my mind around how this... $ptr=prt(1) could be useful. I'd like to see an example less generic than the help file with some actual application. I've definitely done some soul searching in regards to the included struct creation functions. I'm almost an expert, not quite lol. But I am actually working on a wrapper for it that you basically send a struct name and an array of variables and it figures out what the data types are the sizes ect. Its actually working I just have to play around with it some more. One thing I really didn't test was how or even if its possible to store an array inside of a data element in the struct. And I'm not referring to the way that the struct handles a string as an array. Spoiler "I Believe array math to be potentially fatal, I may be dying from array math poisoning" Link to comment Share on other sites More sharing options...
Nine Posted January 3, 2020 Share Posted January 3, 2020 Good luck with your wrapper. It will not be obvious to manage all types of alignment between 32bits and 64bits. Especially if there are embedded struct...endstruct within structure with specific alignment indicators too. Not sure if it is indeed doable to have a generic wrapper to generate all types of structures. The wrapper may end up being more complex than the actual structure declaration... “They did not know it was impossible, so they did it” ― Mark Twain Spoiler Block all input without UAC Save/Retrieve Images to/from Text Monitor Management (VCP commands) Tool to search in text (au3) files Date Range Picker Virtual Desktop Manager Sudoku Game 2020 Overlapped Named Pipe IPC HotString 2.0 - Hot keys with string x64 Bitwise Operations Multi-keyboards HotKeySet Recursive Array Display Fast and simple WCD IPC Multiple Folders Selector Printer Manager GIF Animation (cached) Screen Scraping Multi-Threading Made Easy Link to comment Share on other sites More sharing options...
markyrocks Posted January 3, 2020 Author Share Posted January 3, 2020 (edited) 1 hour ago, Nine said: Good luck with your wrapper. It will not be obvious to manage all types of alignment between 32bits and 64bits. Especially if there are embedded struct...endstruct within structure with specific alignment indicators too. Not sure if it is indeed doable to have a generic wrapper to generate all types of structures. The wrapper may end up being more complex than the actual structure declaration... Lol the idea is that if someone has a specific use for things like what you describe then more than likely creating the struct in the currently available format wont be an issue. What I'm trying to accomplish is an idiot proof method that a newb can use but is good enough to be used for more complex purposes with relative ease using the most common data types. I'm working on the basics rn, I'll move on to more complicated things like alignment ect later on. I'll probably be posting it up tonight after I work out a few kinks. That way others can give thoughts opinions, test it ect. I will admit that the wrapper is very complicated lol but the call to the wrapper is simple. _CreateStruct(by ref $StructName, $Array) The return is the created struct with data passed to it set. I also have it to where if a 2d array is passed then it can be formatted with the name of the element in array element $Array[$x][0], data in $Array[$x][1] that can be retrieved by my function _StructGetData("Struct.Element") or element can be a number i.e. "Struct.1" But again it's all working, I did lots of testing as I was writing it. But it all seems to store and retrieve successfully. Tonight I'm going to button up the main functions and possibly started working on passing a 3d array that will create multiple structs. I'm pretty excited about it.... on second thought the idea of creating multiple structs using a 3d array is probably kinda dumb. Really doesn't seem like any real purpose when the function could just be looped however. Edited January 3, 2020 by markyrocks Spoiler "I Believe array math to be potentially fatal, I may be dying from array math poisoning" Link to comment Share on other sites More sharing options...
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