游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2004|回复: 1

关于枚举direct input设备,大虾看看我的理解对吗?

[复制链接]

13

主题

25

帖子

27

积分

注册会员

Rank: 2

积分
27
发表于 2005-5-25 16:58:00 | 显示全部楼层 |阅读模式
我看了下SDK,大概的代码是:

LPDIRECTINPUT8 lpdi     =NULL;
LPDIRECTINPUTDEVICE lpdijoystick = NULL;
int Init_Joysticks()
{
        CreateDirectInput8(xxx,xxx,&lpdi,xxx);
        lpdi->EnumDevice(xxx,Enum_Joysticks,NULL,xxx);
        if(NULL == lpdijoystick)
                MessageBox(NULL,"joystick not found","joystick not found",MB_OK);

        return(1);
}

BOOL CALLBACK Enum_Joysticks(xxx,xxx)
{
        lpdi->CreateDevice(xxx,xxx,&lpdijoystick,xxx);
        xxx;
        xxx;
        return(xxx);
}
我是这么理解的:direct input 接口调用EnumDevice函数后,WINDOWS系统按照EnumDevice函数的参数查找与之对应的设备,如果找到一个设备,则调用一次自定义回调函数Enum_Joysticks,
并把WINDOWS找到的相关信息写进Enum_Joysticks的第一个参数;而Enum_Joysticks函数将将返回值(是否继续查找)传给操作系统,再由操作系统把自定义枚举函数的第二个参数值传给EnumDevice函数的第三个参数.

也就是说,如果系统没有找到EnumDevice参数中说明的设备,则不会调用自定义的回调函数.
不知道我这么理解对不对?请大虾指点.

13

主题

25

帖子

27

积分

注册会员

Rank: 2

积分
27
 楼主| 发表于 2005-5-26 22:44:00 | 显示全部楼层

Re:关于枚举direct input设备,大虾看看我的理解对吗?

顶一下。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-25 18:19

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表