Jump to content
  • Advertisement
Sign in to follow this  
Ro_Akira

dinput8d.dll and Vista

This topic is 4175 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I'm running Windows Vista Business (not by choice), and I found that the DirectX Control Panel has the DirectInput tab disabled (all of the controls on it are greyed out). I found out from this DirectX FAQ that sometimes it is a problem caused by an incompatible runtime and SDK. I installed the June 2007 SDK, and I've looked into the "Developer Runtime" directory from the setup extraction directory, only to find a version of dinput8d.dll in the Win2k and WinXP subdirectories, but none in the Vista subdirectory. Has anyone else come across this, and is there an explanation behind it? I've tried search engines on this matter and they've not been too much help. Oh, and MSDN too. I tried copying the dinput8d.dll from the WinXP directory into Windows\System32, but it seemed to fail internally with an assertion.

Share this post


Link to post
Share on other sites
Advertisement
Okay, new information. Now that I have access to a Windows 2000 machine, I enabled the debug runtime there - and I met the same assertion that I had with Vista. So I presume it's somewhat valid. Here's the details of the assertion via Visual C++ 2005 Express:


BOOL CALLBACK DirectInput81::EnumJoysticksCallback (const DIDEVICEINSTANCE* pdidInstance, VOID* pContext)
{
DirectInput81* const current (DirectInput81::current);

if (!current)
return DIENUM_STOP;

HRESULT ret;
DirectInput81::JoystickInterface& new_joystick (DirectInput81::new_joystick);
new_joystick.Reset ();

// Obtain an interface to the enumerated joystick
ret = current->di->CreateDevice (pdidInstance->guidInstance, &new_joystick.device, NULL);

if (ret != DI_OK || new_joystick.device == NULL)
{
current->logger << "Error: CreateDevice() failed with " << ret << endl;
return DIENUM_STOP;
}

if (FAILED (ret))
return DIENUM_CONTINUE;

// Set the joystick format
ret = new_joystick.device->SetDataFormat (&c_dfDIJoystick2);

if (ret != DI_OK)
{
new_joystick.device->Release ();
new_joystick.device = 0;
current->logger << "Error: SetDataFormat() failed with " << ret << endl;
return DIENUM_STOP;
}

// Set the cooperative level - DEBUGGER STOPS AT THIS LINE
ret = new_joystick.device->SetCooperativeLevel (current->window, DISCL_NONEXCLUSIVE | DISCL_FOREGROUND);
.
.
.

// In the output window
DINPUT8: Assertion failed: `pHeader' at d:\builds\nt32_chk\multimedia\directx\dinput\dx8\dll\disubcls.c(595)
TestJoystick.exe has triggered a breakpoint


Has anyone else met this assertion before?

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!