directX directInput 键盘抛出 E_accessdenied
Posted
技术标签:
【中文标题】directX directInput 键盘抛出 E_accessdenied【英文标题】:directX directInput Keyboard throws E_accessdenied 【发布时间】:2012-02-24 04:50:35 【问题描述】:我正在尝试使用 DirectInput 键盘,但我的代码抛出了一个奇怪的错误。 我可以完成所有内容的创建和设置,它们都返回 S_OK,但是当我尝试运行时
HRESULT hr;
hr = m_pDIKeyboard->GetDeviceState( sizeof(keyBuffer), (LPVOID)&keyBuffer );
hr 以(十六进制地址)“访问代码无效”返回,当我检查
if(FAILED(hr))
返回为 E_ACCESSDENIED keyBuffer 或该行的任何部分都没有错误(或警告)。
对此有任何想法
【问题讨论】:
【参考方案1】:IDirectInputDevice8::GetDeviceState
的文档给出了以下可能的返回值:
返回值 如果方法成功,则返回值为 DI_OK。如果方法失败,返回值可以是以下错误值之一:DIERR_INPUTLOST、DIERR_INVALIDPARAM、DIERR_NOTACQUIRED、DIERR_NOTINITIALIZED、E_PENDING。
您应该检查没有任何DIERR_*
宏与E_ACCESSDENIED
重叠。
此外,我见过的一些代码处理E_ACCESSDENIED
的方式与DIERR_INPUTLOST
相同。您可能想尝试重新Acquire
输入并再试一次。
【讨论】:
但它不会显示为这些 HRESULT 值之一,而不是“访问代码无效”以上是关于directX directInput 键盘抛出 E_accessdenied的主要内容,如果未能解决你的问题,请参考以下文章