I'm seeing an access violation inside OIS.dll when running isKeyDown in release mode. I know my keyboard is valid.
bool S13OISInputManager::IsKeyDown(OIS::KeyCode _kc)
{
S13OISInputManager::KeyboardList::iterator keyboardIterator = m_KeyboardList.begin();
S13OISInputManager::KeyboardList::iterator keyboardIteratorEnd = m_KeyboardList.end();
for (; keyboardIterator != keyboardIteratorEnd; ++keyboardIterator)
{
S13OISKeyboard* s13OISKeyboard = *keyboardIterator;
if (s13OISKeyboard)
{
OIS::Keyboard* keyboard = s13OISKeyboard->GetKeyboard();
if (keyboard)
{
if (keyboard->isKeyDown(_kc))
{
return true;
}
}
}
}
return false;
}
Somehow the KeyBuffer is invalid?
bool Win32Keyboard::isKeyDown( KeyCode key )
{
return (KeyBuffer[key] & 0x80) != 0;
}
KeyBuffer = 0x07c6d3f0 <Bad Ptr>
key = 1570640
- this 0x07c6d3a8 {mDirectInput=??? mKeyboard=??? coopSetting=??? ...} OIS::Win32Keyboard * const