c ++ - directX directInput Keyboard kaster E\_accessdenied

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at arbejde med DirectInput-tastatur, og min kode kaster en underlig fejl.
Jeg kan gå igennem skabelsen og indstilling af alt og de vender alle tilbage S\_OK, men når jeg forsøger at løbe


HRESULT hr;
hr = m\_pDIKeyboard->GetDeviceState( sizeof(keyBuffer), (LPVOID)&keyBuffer );


hr kommer tilbage som (hex adresse) 'adgangskoden er ugyldig', og når jeg gør en check for


if(FAILED(hr))


det kommer tilbage som E\_ACCESSDENIED
Der er ingen fejl (eller advarsler for den sags skyld) på keyBuffer eller nogen del af linjen.


nogen tanker om dette

Bedste reference


Dokumentationen for IDirectInputDevice8::GetDeviceState giver følgende mulige returværdier: [9]



   Returværdi

  Hvis metoden lykkes, er returværdien DI\_OK. Hvis metoden fejler, kan returværdien være en af ​​følgende fejlværdier: DIERR\_INPUTLOST, DIERR\_INVALIDPARAM, DIERR\_NOTACQUIRED, DIERR\_NOTINITIALIZED, E\_PENDING.



Du bør kontrollere, at ingen af ​​DIERR\_* makroerne overlapper med E\_ACCESSDENIED.


Desuden kan nogle kode jeg har set håndterer E\_ACCESSDENIED på samme måde som DIERR\_INPUTLOST. Du vil muligvis forsøge at genindlæse Acquire indgangen og få endnu en gang.