====== Pointers and Structures in BASIC+ ====== DLL functions often pass parameters by reference and therefore require pointers to BASIC+ variable data. ^Pointer/Structure^Description^ |[[blank_struct|Blank_Struct()]]|Builds a blank structure to pass to a DLL which will then fill in the structure's elements.| |[[build_struct|Build_Struct()]]|Assembles a binary structure out of BASIC+ variables.| |[[declare_fcns|Declare_FCNS routine]]|Compiles a .DLL definition record into BASIC+ callable functions.| |[[define_struct|Define_Struct routine]]|Starts the Structure Designer tool.| |[[getpointer|GetPointer()]]|Returns a pointer to the actual data of a BASIC+ variable. Refer to LockVariable, below.| |[[getvalue|GetValue()]]|De-references a pointer and copies the data to a BASIC+ variable of a specified type.| |[[lockvariable|LockVariable statement]]|Locks a variable so its data does not move in memory.| |[[parse_struct|Parse_Struct subroutine]]|Extracts elements from a structure into BASIC+ variables.| |[[struct_flush|Struct_Flush subroutine]]|Flushes any cached structure definitions.| |[[struct_len|Struct_Len()]]|Returns the length in bytes of a structure based on the structure's definition.| |[[struct_to_var|Struct_To_Var()]]|Converts a binary structure to a dynamic array, placing each element from the structure into the corresponding field.| |[[unlockvariable|UnlockVariable statement]]|Unlocks a BASIC+ variable locked by LockVariable.| |[[var_to_struct|Var_To_Struct()]]|Converts an @fm-delimited variable into a structure placing, obtaining each structure element from the corresponding field in the variable.| For more information on DLLs, refer to Chapter 7: Calling DLLs from BASIC+.