Hi all. I'm going to ask this question without attachments to see if I get an quick obvious answer and if necessary, can upload my code examples. I've got a 3rd party DLL (no debug info, but know it is stable) that requires callback functions to respond to. I've gone the route of creating my own DLL to support the callbacks and relay the events to a Labview event structure. The way I have it set up is: 1) Labview calls an exported function in my DLL simply so that I can store Labview's UserEvent Reference parameter for the PostUserEvent function. It gets stored in a static variable. 2) A second exported function passes its callback function pointer up to Labview and Labview passes it to the 3rd party DLL.
So I launch the system and things seem to work at first - my DLL actually gets called and relays data from the 3rd party DLL to a Labview Event structure. What seems to be happening: Getting a valid function pointer to 3rd party DLL, getting the event trigger in my DLL, properly calling the Labview user event structure using data allocated with Labviews native memory functions. BUT, then I get memory access crashes. So my question is, do you guys think this is because Labview is trashing (deallocating) my DLL callback function rendering the pointer invalid after a certain time?? And if so, is there a way to prevent this? And or, should I be taking a different approach and actually create a wrapper where the 3rd party DLL is called from within my DLL?