首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >windows多媒体guid (winmm.dll)设备(操纵杆)

windows多媒体guid (winmm.dll)设备(操纵杆)
EN

Stack Overflow用户
提问于 2019-11-01 06:07:26
回答 1查看 394关注 0票数 0

我试图实现与非托管代码和c#的互操作。

我决定为此使用winmm.dll。

需要获得操纵杆唯一的guid并识别设计状态(连接与否)。

经过一番调查,我认为找到了应该做它的函数,(joyGetDevCapsA).但尚不清楚作为int id参数应传递哪些值。

代码语言:javascript
复制
public static class InputControllerInteroperator
    {
        private const string WINMM_NATIVE_LIBRARY = "winmm.dll";
        private const CallingConvention CALLING_CONVENTION = CallingConvention.StdCall;

        [DllImport(WINMM_NATIVE_LIBRARY, CallingConvention = CALLING_CONVENTION), SuppressUnmanagedCodeSecurity]
        public static extern int joyGetPosEx(int uJoyID, ref JOYINFOEX pji);

        [DllImport(WINMM_NATIVE_LIBRARY, CallingConvention = CALLING_CONVENTION), SuppressUnmanagedCodeSecurity]
        public static extern int joyGetPos(int uJoyID, ref JOYINFO pji);

        [DllImport(WINMM_NATIVE_LIBRARY, CallingConvention = CALLING_CONVENTION), SuppressUnmanagedCodeSecurity]
        public static extern int joyGetNumDevs();

        [DllImport(WINMM_NATIVE_LIBRARY, CallingConvention = CALLING_CONVENTION, EntryPoint = "joyGetDevCaps"), SuppressUnmanagedCodeSecurity]
        public static extern int joyGetDevCapsA(int id, ref JOYCAPS lpCaps, int uSize);
    }

对于C#思想的互联网,没有很多关于winmm的信息,所以如果有人有经验,请分享。

Q::如何在当前时刻检测到附加或不附操纵杆,得到设备唯一的Guid?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-17 05:10:06

根据@Hans (https://stackoverflow.com/users/17034/hans-passant)的评论,问题如下:

没有guid,没有连接状态。特定的操纵杆被识别为一个简单的uint。0是第一个操纵杆,1是第二个操纵杆等等。

对我来说很管用

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58654817

复制
相关文章

相似问题

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