advr.hlp (Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software, purely for historical purposes. If you're looking for up-to-date documentation, particularly for programming, you should not rely on the information found here, as it will be woefully out of date.
StringRelease Routine Details
  Summary  Details  Example                Contents  Index  Back
──────────────────────────────────────────────────────────────────────────────
 StringRelease(string-descriptor%);
 
 Usage Notes
   ■ The StringRelease syntax is for the C language.
 
   ■ Use the StringRelease routine only to deallocate variable-length strings
     that have been transferred to Visual Basic's string space from a non-
     Basic routine. Never use it on strings created by Visual Basic.
 
   ■ Calls to the StringRelease routine are made from a non-Basic routine
     to free up space in Visual Basic's data area.
 
   ■ Visual Basic automatically deallocates strings allocated by Basic.
     However, strings that have been transferred to Visual Basic from a non-
     Basic routine should be deallocated from the non-Basic routine using the
     StringRelease routine.
 
   ■ Using StringRelease to deallocate strings from a non-Basic routine is
     necessary because StringAssign transfers only strings, not string
     descriptors. Without the string descriptor, Visual Basic cannot
     deallocate the string.
 
     For example, assume that you have passed a string from a MASM routine
     to Visual Basic's string space using StringAssign. To deallocate this
     string, assuming a descriptor for the variable-length string exists at
     offset descriptor, the code is:
 
         .model
          extrn        stringrelease: far
 
         .code
          lea          ax, descriptor        ; offset of descriptor
          push         ax
          call         stringrelease