"Just bung the lot into a memblock, then easy to work out addresses"
hehe
"How about declaring your types in a DLL then access and modify it inside the DLL"
seems really workaroundy.
oh well. i'll just live with arrays of types til then.
i've also emailed IanM to see if he knows anything about passing UDTs into TPC functions.. right now with commands like END/EXITFUNCTIOB and PRINT, DBP simply does an integer cast on the type. so
type a
x
endtype
a as mytype
a.x=4
print a
prints "4". maybe there is a way to pass UDTs into TPC functions by using a void*. but then, what type of parameter would i use in the TPC stringtable? perhaps X like in the CALL DLL stringtables? hmmm...... questions........
i'd like to know if there is a way to, because if there is, i'd be able to make a AddressOf function that would allow you to pass the pointer of the UDT into a function -- thereby allowing byref. however the docs say it's not possible to pass UDTs, but who knows..
[edit]well i tried this:
EXPORT DWORD TryMe(BYTE* ptr)
{ return ReadAddress<BYTE>((DWORD)ptr); }
inside IanM's utility DLL. i added the command to the stringtable using X as the input parameter. DBP no longer whines about incorrect parameters -- however it still doesn't work. it just craps out and gives no error, no memory violation, no anything.
i also just tried it by passing in a memblock pointer -- and it works fine. so it IS DBP's fault that the UDT is not getting passed in correctly. dammit.
stop looking at me!