游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3416|回复: 9

求助:DXinput问题!

[复制链接]

5

主题

38

帖子

40

积分

注册会员

Rank: 2

积分
40
发表于 2005-6-1 23:01:00 | 显示全部楼层 |阅读模式
我想用游戏杆来做输入控制,但是在列举设备时遇到一个问题,代码如下
m_pDirectInput->EnumDevices(DI8DEVCLASS_GAMECTRL, EnumProc, NULL, DIEDFL_ALLDEVICES)

回调函数如下:
BOOL CALLBACK CGame::EnumProc(LPCDIDEVICEINSTANCE lpddi,LPVOID pvRef)
{
        if(FAILED(m_pDirectInput->CreateDevice(lpddi->guidInstance, &m_pJoystick, NULL)))
                return DIENUM_CONTINUE;
        else
                return DIENUM_STOP;
}

错误提示如下:
error C2664: 'EnumDevices' : cannot convert parameter 2 from 'int (const struct DIDEVICEINSTANCEA *,void *)' to 'int (__stdcall *)(const struct DIDEVICEINSTANCEA *,void *)'
我知道是类型不匹配,但是不知道这里怎样改,恳请指教!不胜感激!!

5

主题

38

帖子

40

积分

注册会员

Rank: 2

积分
40
 楼主| 发表于 2005-6-2 11:33:00 | 显示全部楼层

Re: 求助:DXinput问题!

求大家帮帮忙啊! [em6]

63

主题

871

帖子

891

积分

高级会员

Rank: 4

积分
891
QQ
发表于 2005-6-2 11:40:00 | 显示全部楼层

Re:求助:DXinput问题!

回调函数最好不要放在类里

5

主题

38

帖子

40

积分

注册会员

Rank: 2

积分
40
 楼主| 发表于 2005-6-2 13:58:00 | 显示全部楼层

Re: 求助:DXinput问题!

恩,问题解决!多谢!
能不能告诉我为什么?万分感激!

63

主题

871

帖子

891

积分

高级会员

Rank: 4

积分
891
QQ
发表于 2005-6-2 16:08:00 | 显示全部楼层

Re:求助:DXinput问题!

系统会隐含的传一个对象指针给类里的函数

这样可能在原型上有点出入

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2005-6-2 22:11:00 | 显示全部楼层

Re:求助:DXinput问题!

楼上说的是一部分理由。一个类的成员函数和普通的函数是有着很大的区别的。普通的函数你可以很轻松的取到代码偏移,但是类的成员函数就不可以。因为它本身是和类有着紧密的联系的。在某些编译器实现中,全局函数指针是4字节,而类成员函数指针是16字节;调用的时候,成员函数还需要传递一个this,在vs中,这个往往是存放在ecx中的。所以,两者从声明到使用都有着很大的不同。

85

主题

824

帖子

878

积分

高级会员

Rank: 4

积分
878
QQ
发表于 2005-6-2 22:21:00 | 显示全部楼层

Re:求助:DXinput问题!

可以试试用静态成员函数

30

主题

298

帖子

299

积分

中级会员

Rank: 3Rank: 3

积分
299
QQ
发表于 2005-6-3 02:22:00 | 显示全部楼层

Re:求助:DXinput问题!

在某些编译器实现中,全局函数指针是4字节,而类成员函数指针是16字节

这个有点意思。
指针就是地址,地址应该是定长的。所以这个16字节的指针让我有些不解,还请指教。

难道说这个16字节的指针其实是一个封装,不光有函数地址,还携带有其它信息? [em24]

5

主题

38

帖子

40

积分

注册会员

Rank: 2

积分
40
 楼主| 发表于 2005-6-5 01:15:00 | 显示全部楼层

Re:求助:DXinput问题!

感谢各位!

85

主题

824

帖子

878

积分

高级会员

Rank: 4

积分
878
QQ
发表于 2005-6-5 11:06:00 | 显示全部楼层

Re: Re:求助:DXinput问题!

hmhm: Re:求助:DXinput问题!

在某些编译器实现中,全局函数指针是4字节,而类成员函数指针是16字节

这个有点意思。
指针就是地址,地...

类成员函数指针不是函数指针,它们的调用机制也不一样的说
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-25 21:24

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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