感觉现在写程序比较随意,成功返回S_OK,但失败时,什么时候应该用S_FALSE,什么时候用E_XXX,感觉不是很好确定,不知道有没有一些规范性的东西

解决方案 »

  1.   

    呵呵, 大的方向就是, 你认为函数运行是成功的就返回 S_OK,S_FALSE, 如果你认为是失败的就返回 E_XXXXX 形式的。E_ 开头的有很多种, 可以比较详细的描述出错误原因。
      

  2.   

    返回值最好都返回S_OK.(有一次用别的返回值一直出错)
    然后根据自己的需要添加自已的返回值,就是在方法声明的时候用[retval]进行声明,然后在适当的时候设置你的返回值,然后就return S_OK.
    待函数执行完毕,你再判断你的返回值就OK啦.
      

  3.   

    S_FALSE的用法我就有些想不清楚,既然成功了用S_OK就好了,能不能举个例子说明一下S_FALSE的应用场合呢
      

  4.   

    用SUCCEEDED宏来判断S_FALSE, S_OK 都是成功的 , 一个执行可以认为是成功的函数, 也可能表示有不同的信息(通过不同的执行路径成功, 虽然都成功到彼此还是有差别)。 这个就根据个人如何设计函数的了, 如果你认为函数返回TRUE, BOOL这两个逻辑就足够了, 你完全可以只使用S_OK