10代と話して驚いたこと

身近でよく見かけるものに限ってなかなか探しても見つからないものなのですよね。

よくC++のプログラムで見かける
LRESULT型
HRESULT型
いったいどの様な型なのでしょうか?
どの様な時に使うのか教えてください。

A 回答 (4件)

もう少しだけ補足。



ATLは、COM実装等に使うことを意識したライブラリなのでHRESULTとはなじみが深い。

そして、HRESULT(LRESULTも)は特にC++固有ということはなく
「Microsoftが定義したWindows開発用APIの一部」です。

COMやActiveX等はWindowsにおいてC++以外にも使いうるものであって、
C/C++用ヘッダでもその型定義があるに過ぎませんし、
UNIX等ではC++だったとしてもそんな型はまぁ使いません。
    • good
    • 2
この回答へのお礼

私みてるとHRESULTは成功・失敗の合図に用いられているのを見ます。

ただ、成功・失敗の判定でHRESULTを利用するとうまくいかないことがあるそうです。

http://www.dinop.com/vc/hresult.html

お礼日時:2006/07/26 21:33

> HRESULT型はどの様な時に使用しますか?



COMのインターフェイスの戻り値。
これはHRESULTで戻すのが基本的なルールです。

それ以外では私は使いません。

# そもそもWindows以外での開発もやるので環境依存部は最小限。
    • good
    • 1
この回答へのお礼

わすれてました!
くわしく教えてくださいましてありがとうございます!

お礼日時:2006/07/26 21:41

LRESULTは「LONG型の戻り値」です。


ウィンドウプロシージャの戻り値等で使われますが、
意味的にはそれ以上の特定用途はありません。
つまり、各関数やAPIの仕様でその値の意味が決まります。

HRESULTは、COMのインターフェイスにおいて戻り値用に定義された型です。
フォーマットは[参考URL]に定義されています。
# DirectX等はCOMベースなので、基本的にHRESULTが帰ってきます。

参考URL:http://msdn.microsoft.com/library/default.asp?ur …

この回答への補足

LRESULTは分かりました。
くどいようですが、
HRESULT型はどの様な時に使用しますか?

補足日時:2006/07/26 10:18
    • good
    • 0

HRESULT とは単純なデータ型で、普通、属性および ATL の戻り値としてよく使われます。


winerror.h ファイル内に、この定数値が定義されています。

LRESULT は通常、ウィンドウプロシージャの戻り値としてよく使われます。

環境にもよりますが、大抵は、いずれも long 型の typedef だったりします。

参考URL:http://msdn2.microsoft.com/ja-JP/library/dcy94zz …

この回答への補足

くどいようですが、
HRESULT型はどの様な時に使用しますか?

補足日時:2006/07/26 10:20
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A