3

C# でフォーム アプリケーションを作成するプロジェクトに取り組んでいます。ネイティブ Windows API の一部である IFileDialog およびその他の機能を使用したいと思います (または ti を呼び出す必要があります)。

最初は、相互運用性や Windows API についてまったく知りませんでした。私は学び始めていますが、特定の側面に関する非常に基本的な情報を見つけるのが難しい場合があります. したがって、(おそらく些細な/愚かな)質問があります:

HResults はよく使用されます。私が理解しているように、HResults は、さまざまなビットが特定の操作の結果に関する情報を提供する 32 ビットのエンティティにすぎません。オンラインで見つけた一部のコードでは、int hres = -2147467259;. まったくの初心者なので、これが何を意味するのかを確認しに行きました。-2147467259であり、MSDN のオンライン ドキュメントでは、別名未特定エラーを意味0xFFFFFFFF80004005することがわかります。私の質問は、その部分はどうなっていますか? 彼らはちょうど使用できませんでしたか?多分これは非常に明白で、私は完全な初心者ですが、それでも:)0x80004005E_FAILFFFFFFFFint hres = 0x80004005

4

2 に答える 2

2

FFFFFFFFの部分は、HResultが負であるためです。

これが、コンピューターが2の補数を使用して負の数を格納する方法です。

この計算を確認してください(私の強調):-
2147467259 = 0xFFFFFFFF 80004005
-2147467259 + 2 ^ 32(ロールオーバー)= 2147500037 = 0x 80004005

于 2009-11-01T20:27:10.543 に答える
0

32 ビット プラットフォームでは、an のint長さは 32 ビットで、8 桁の 16 進数の 4 バイトです。、(貼り付けたコードE_FAIL0x80004005示すものです。この値を64ビットマシンにダンプすると、2倍のストレージが必要になります。数字は符号拡張されており、先頭の8(バイナリ100)は符号を意味しますビットは1すべて 1 です。1111バイナリでは 16 進数で、表示されるすべてのsFをもたらします。F

于 2009-11-01T20:48:27.787 に答える