我将DirectInput与Direct3D 11结合使用,并针对x64进行编译,并从此行获取E_INVALIDARG:
HRESULT hr = DirectInput8Create(hInstance, DIRECTINPUT_VERSION, IID_IDirectInput8, reinterpret_cast<void **>(&this->_d8Input), 0);
当我设置一个断点来查看发生了什么时,我没有任何无效参数的迹象。我的hInstance有效,_d8Input指针也有效,并且DIRECTINPUT_VERSION设置为0x0800。
我以前用D3D9进行直接输入,使用的方式完全相同,没有任何问题。
我想念什么?
谢谢。
最佳答案
好的,事实证明,我正在使用/ SUBSYSTEM:CONSOLE进行编译,并且在使用控制台子系统时从WinMain传递的hInstance根本不需要DirectInput8Create。
关于c++ - DirectInput8Create失败:E_INVALIDARG,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5213107/