游戏开发论坛

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

问个笨笨的问题

[复制链接]

13

主题

25

帖子

27

积分

注册会员

Rank: 2

积分
27
发表于 2005-5-13 09:58:00 | 显示全部楼层 |阅读模式
简要程序:
IDMusicPerformance  * lpdmperf = NULL;

if(lpdmperf)
{
  if(FAILED(lpdmperf->stop(xxxx))
       return(0);
}

if(lpdmperf)
{
  if(S_OK != (lpdmperf->release())
       return(0);
}

请问if(lpdmperf)这句话还有必要放上吗?看书上这么写,有些表示怀疑,呵呵... [em5]

7

主题

188

帖子

198

积分

注册会员

Rank: 2

积分
198
发表于 2005-5-13 11:02:00 | 显示全部楼层

Re:问个笨笨的问题

有必要阿,如果lpdmperf为null 后面的操作……

7

主题

188

帖子

198

积分

注册会员

Rank: 2

积分
198
发表于 2005-5-13 11:05:00 | 显示全部楼层

Re:问个笨笨的问题

另外 if(lpdmperf)  最好写成 if ( lpdmperf != NULL )

13

主题

25

帖子

27

积分

注册会员

Rank: 2

积分
27
 楼主| 发表于 2005-5-13 14:47:00 | 显示全部楼层

Re:问个笨笨的问题

但是FAILED(lpdmperf->stop(xxxx),或则S_OK检测不到错误的吗?

7

主题

188

帖子

198

积分

注册会员

Rank: 2

积分
198
发表于 2005-5-16 10:13:00 | 显示全部楼层

Re:问个笨笨的问题

说实话,我没有对HRESULT的工作过程研究过

但在程序设计的时候最好保证一个对象存在再去对它进行操作,否则很容易出错,深的我也不懂了,改天研究一下,如果你搞明白了也麻烦po出来给偶看看哈~

上面的FAILED(lpdmperf->stop(xxxx),括号里面的应该先执行,所以如果不对lpdmperf进行判断,出错就会在此了,都还没执行到FAILED(。。。。。。),我是这么理解的

13

主题

153

帖子

153

积分

注册会员

Rank: 2

积分
153
QQ
发表于 2005-5-16 15:19:00 | 显示全部楼层

Re:问个笨笨的问题

你想想拿空指针来调用东西是什么结果?

13

主题

25

帖子

27

积分

注册会员

Rank: 2

积分
27
 楼主| 发表于 2005-5-16 20:30:00 | 显示全部楼层

Re:问个笨笨的问题

对呀,我的问题实质就是这个啊!拿空指针来调用东西,不知道是在运行时出错,还是被FAILED拦截而返回失败。。。但我想的和伊啦虾相反了,我认为FAILED会捕获到这个错误哩。。。虽然我试过,但仍然不感肯定,不知道能不能给个确定的答案啊。。。

140

主题

1228

帖子

1233

积分

金牌会员

Rank: 6Rank: 6

积分
1233
QQ
发表于 2005-5-16 23:29:00 | 显示全部楼层

Re:问个笨笨的问题

漏掉什么代码了吧!
上面那些,只有IDMusicPerformance  * lpdmperf = NULL;会执行

140

主题

1228

帖子

1233

积分

金牌会员

Rank: 6Rank: 6

积分
1233
QQ
发表于 2005-5-16 23:42:00 | 显示全部楼层

Re:问个笨笨的问题

还是你只想问空指针执行么?
那是绝对要验证的,不过空指针调用只会产生内存无法访问而已。编译不会报错。
FAILED是个带参的宏,实际可以理解为函数,FAILED会返回逻辑真或假!
该宏的定义非常搞笑,你在编译器里可以查到,我从没用过。
他在FAILED()括号内的整数值,或函数返回值,小于零时返回true,否则false.

它没有任何检验空指针的能力,除非你用的sdk里的该宏的定义与我不同。

  if(FAILED(lpdmperf->stop(xxxx))
       return(0);

写漂亮点应该这样。
HRESULT hr;
hr = lpdmperf->stop(xxxx);
if(hr<0)return 0;

或者if(lpdmperf->stop(xxxx)<0)return 0;

33

主题

669

帖子

669

积分

高级会员

Rank: 4

积分
669
QQ
发表于 2005-5-21 15:01:00 | 显示全部楼层

Re:问个笨笨的问题

有必要 ,保险嘛
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-25 16:48

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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