Jump to content
Sign in to follow this  

get Structure Values

Recommended Posts


Hi together,

once in a while i have a problem where i won't get any further...

I do a DLL CallbackRegister and then the appropiate DllCall. The DLL i'am calling creates a structure. Then the DLL calls the CallbackRegister Funktion with a pointer to this structure as a parameter.

I now need to get the values of the structure. At the moment i do a memory read. But i get errors an some times the script fails badly. This is not a really clean way of programming.

I know the structure of the created structure but i can't create a structure in AutoIt an do some kind of DllStructSetPtr to the pointer which gives me the DLL so i could read the values with a simple DllStructGetData... (hope you understand :) ).

Has someone an idea how to get those strucutre values?

greetz from sunny germany


PS: Bonn alaaf :)

Share this post

Link to post
Share on other sites

Global Const $tagMyStruct = 'int X;int Y'

$tStruct = DllStructCreate($tagMyStruct)
DllStructSetData($tStruct, 'X', 10)
DllStructSetData($tStruct, 'Y', 40)
$pStruct = DllStructGetPtr($tStruct)


Func _Callback($Ptr)
    Local $tData = DllStructCreate($tagMyStruct, $Ptr)
    ConsoleWrite(DllStructGetData($tData, 'X') & ' x ' & DllStructGetData($tData, 'Y') & @CR)
EndFunc   ;==>_Callback

Share this post

Link to post
Share on other sites

OMG. I knew it was my fault. I totally missed the second parameter from DllStructCreate!! :)

I think this will solve my problem.

Many thanks Yashied :)

Share this post

Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  


Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.