ページ 11

プログラムの意味

Posted: 2008年11月16日(日) 17:30
by
よくプログラムで
if(FAILED(・・・)){
return E_FAIL;
}
と書いてある解説書があるのですが
もし・・・が失敗したら E_FAIL を・・・に返すという意味でいいのでしょか?
また E_FAIL とは -1 みたいなものなのでしょうか?

Re:プログラムの意味

Posted: 2008年11月16日(日) 17:45
by 御津凪
> もし・・・が失敗したら E_FAIL を・・・に返すという意味でいいのでしょか?

もし・・・が失敗したら E_FAIL を実行している関数から返すという意味です。
(return の意味は理解していますか?)

> また E_FAIL とは -1 みたいなものなのでしょうか?

FAILED() マクロの定義を見ると、
#define FAILED(hr) (((HRESULT)(hr)) < 0)
となっており、また E_FAIL の定義は、
#define E_FAIL                           _HRESULT_TYPEDEF_(0x80004005L)
となっています。
つまり、 FAILED マクロは 値が負数なら失敗(真を返す)となりますが、
E_FAIL は -1 ではありません。(負数ではある)

Re:プログラムの意味

Posted: 2008年11月16日(日) 18:05
by たかぎ
> もし・・・が失敗したら E_FAIL を・・・に返すという意味でいいのでしょか?
> また E_FAIL とは -1 みたいなものなのでしょうか?

環境不明なので何ともいえません。