2009-08-26 8 views
1

winapiメソッドCloseHandle()に.P/Invoke経由でアクセスする際に、引数がIntPtrかHandleRefである必要があります。CloseHandle()winapi call in .netの引数

+0

次に、テキストに質問を入れて、より良いタイトルを付けてください。 – Guffa

+0

@Guffa - 質問を編集するだけでもいいです – Rob

答えて

2

ハンドルを取得する方法によって実際にはあなたの選択です。ハンドルが最初に管理対象オブジェクトに埋め込まれている場合は、HandleRefを使用する必要があります。他のPInvoke関数からハンドルを取得し、.NETがそれらを何も知っていない場合は、IntPtrを使用します。

HandleRefの利点は、.NETがHandleRefが存在する限りコンテナオブジェクトを有効に保つことを約束しますが、ハンドルだけをAPI関数にマーシャリングすることです。 CloseHandleの特定のケースでは、これは問題ではないので、IntPtrはうまくいくはずです。