首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DirectInput控制台应用程序

DirectInput控制台应用程序
EN

Stack Overflow用户
提问于 2018-08-17 17:43:48
回答 1查看 909关注 0票数 0

我在C++中工作,我需要处理一个带有力反馈的输入设备。我发现一个解决方案可以是使用DirectInput,所以我开始研究这个问题。

第一个问题:关于处理力反馈装置的其他方法有什么建议吗?(Win32应用程序,而不是UWP)

回到DirectInput

我脑海中的参考起点是DirectInput样本,特别是FFconst示例,其中根据从简单GUI获取的值向第一个设备轴施加恒定的反馈力。在我的例子中,我想要实现的是拥有一个简单的控制台应用程序,在这个应用程序中,我根据从标准输入中获取的值设置一个恒定的力。

根据示例和文档,使用DirectInput API的基本步骤是:

现在,在我们遇到SetCooperativeLevel mehtod之前,一切都进行得很顺利,因为它需要一个HWND窗口句柄作为输入,“要与设备相关联”,并且“必须是属于进程的有效顶层窗口句柄”。因为我正在编写一个控制台应用程序,所以我需要找到一个有效的HWND指针:我按照建议解决了这个问题。无论如何,我得到的HWND指针似乎不是一个有效的窗口句柄,因为我得到了一个E_HANDLE错误,因为我会指定nullptr作为参数。我发现通过https://msdn.microsoft.com/en-us/library/windows/desktop/ms633514(v=vs.85).aspx调用指定参数允许不获取无效的句柄错误。但是,我无法获得设备,我得到了DIERR_OTHERAPPHASPRIO错误,这只不过是E_ACCESSDENIED。我找到表示,似乎有人用处理DIERR_INPUTLOST错误的方式来处理该错误,即在way循环中重新获取设备,如UpdateInputState函数中的直接输入样本中所示。无论如何,我无法退出这个循环,即设备设备一直被拒绝。

那就是说我最后

第二个问题:如何在控制台应用程序中或在DLL中使用DirectInput API?(Win32)对于控制台应用程序,我想了解为什么我所做的步骤不能工作,对于DLL,我想知道是否有人知道可以在哪个HWND指针上使用。

EN

回答 1

Stack Overflow用户

发布于 2019-08-03 18:47:10

Microsoft提供了一个函数,用于获取控制台应用程序的窗口,用于这样的用途。

代码语言:javascript
复制
HWND WINAPI GetConsoleWindow(void);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51900546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档