I'm learning how to write C# from IDLの戻り値は、戻り値が[out、retval]としてパラメータリストに定義されている理由です。 HRESULTは戻り値型である必要がありますが、C#のコードには何の影響もないようです。IDL
Q
IDL
2
A
答えて
1
COMは例外をサポートしていません。これらは非常に強力な言語ランタイム実装の詳細です.C#例外はC++例外のようなものではありません。それはHRESULTを非常に重要なものにします、それは代用品です。すべてのCOMメソッドはエラーコードを返す必要があり、負の値は失敗を示します。
しかし、多くの言語が例外をサポートしています。言語ランタイムが障害HRESULTを例外にすることを許可します。したがって、戻り値はもはや必要ありません。
これは、タイプライブラリインポータとCLRがメソッドシグネチャを書き換えることを可能にします。有用な戻り値を持つ "通常の"関数のように見えるようにする。 [retval]属性はこれを示します。それがなければ、voidを返す通常のメソッドになります。
[PreserveSig]属性の関連性についても説明し、この再書き込みを抑制します。成功を示すためにHRESULTが0以上の値を返したときに必要な場合があります。 COMイテレーターは、例えばNext() methodのためにそれを必要とします。
関連する問題
- 1. IDL統合
- 2. インターフェイスIDLファイルをC#
- 3. C++からIDLツール
- 4. IDLの方程式の解
- 5. IDLとC++ソースファイルの関係
- 6. IDLの印刷エラー:32700 + 99
- 7. IDL生成ヘッダーファイルの変更
- 8. gRPC/protobuf(Protoclバッファ)のJava IDL
- 9. IDLでのK平均クラスタリング
- 10. corba idlの非標準ネームスペース
- 11. 各ピクセルのidlの半径
- 12. IDLの科学記法でプロットする
- 13. IDLで構造を作成する
- 14. CORBA IDL:構造体メンバのデフォルト値
- 15. IDLへのJavaインターフェイスの移植
- 16. C++プロジェクトに.idlファイルを含める
- 17. プロパティ "getter object(DOMString name);"ドキュメントIDL内
- 18. IDL内でspawnコマンドを使用
- 19. IDL列挙型ライブラリに表示されません
- 20. IDLでワイド文字定数を宣言する方法
- 21. COM IDL定義の[in、out]と[out、retval]の相違点
- 22. 大きな数字をつけているidl = 0.0
- 23. IDL配列から値を削除する
- 24. idlファイルをVisual Studio(C++)にインポートしますか?
- 25. CORBA + IDL + Java:サーバントの作成に助けが必要
- 26. CORBA IDLとRMIの長所と短所は?
- 27. COMオブジェクトidlでtypdefを宣言するには?
- 28. IDLのコンパイルでエラーが返されない
- 29. IDLは、C++でジェネリック型をサポートしていますか?
- 30. IDLで使用するとRDFLOATが機能しない