> I gave up trying to use SetCINArraySize a while ago and I can't
> remember exactly why now. There are 4 methods I use now:
> DSNewHandle, DSNewPtr, DSDisposeHandle, and DSDisposePtr. They have
> worked well throughout development in 6.0, but when I moved to 6.1 I
> started getting those crashes. I have narrowed it down to one
> specific data structure but haven't been able figure out why it
> doesn't work and other more complex structures do. It is a cluster
> with an int32 followed by three strings. It works fine, but if that
> structure is passed back from the DLL any time during execution LV
> crashes when it is attempting to exit. If you have any more ideas I
> would appriciate the help.
>
If you are used to usi
ng the lower level functions, then you don't have
to stop, SetCINArraySize is just a little more safe.
A cluster with an int32 and three strings should come in as a pointer to
a struct followed by three handles to strings. You will need to use
DSSetHandleSize on the string handles anytime you change their size.
Not seeing your code, I would recommend that you make a struct of int32,
LStrHandle, LStrHandle, LStrHandle. Cast the pointer to your cluster as
a pointer to this struct. Now you can access your string handles by
name, resize the handle, copy data into them, and set the string size.
Use the LHStrBuf and LHStrLen, macros if they help you out.
Greg McKaskle