Hi all,
I¹m having an incredibly frustrating problem, which probably means I¹m doing
something stupid.
I have a class, HIDManager, which has the following data setup:
struct HIDManager_Data
{
Boolean Initialised;
#if TARGET_OS_WIN32
LPDIRECTINPUT8 myDirectInput8Object;
GUID* GUIDArray; // will store the array of current GUIDs
UInt32 NumberOfDevices;
#endif
};
typedef HIDManager_Data* HIDManager_DataRef;
...and the class has the following constructor:
static void HIDManager_Constructor (REALobject instance)
{
ClassData (HIDManager, instance, HIDManager_Data, me);
me->Initialised = false;
#if TARGET_OS_MAC
if (RebuildDeviceList(instance) == noErr) {
me->Initialised = true;
}
#elif TARGET_OS_WIN32
// blank the GUID list
me->GUIDArray = NULL;
// reset the count
me->NumberOfDevices = 0;
// create the DirectInput object
HRESULT osErr = DirectInput8Create(GetModuleHandle(NULL),
DIRECTINPUT_VERSION, IID_IDirectInput8, (void**)&me->myDirectInput8Object,
NULL);
if (osErr == noErr) {
me->Initialised = true;
CountDevices(instance);
RebuildDeviceList(instance);
}
#endif
}
What I am finding is that the ³me->NumberOfDevices = 0² line causes the
following error (for a Win32 app, built using this plugin and RB 2006r1 on
Mac OS X) when the built application quits:
Runtime Error 4: Failed Assertion
Dump.cpp: 111
Failure Condition: 0
Overwrote start of block
If I comment out this line, everything works fine without the failed
assertion.
Any idea what could be causing this? I can manipulate the Initialised and
GUIDArray values fine.
Thanks in advance for any help!
Dave.
_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>
Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>