0

以下は、Firefox (Gecko) 3.5 コードで公開されています。

[Guid("fa9c7f6c-61b3-11d4-9877-00c04fa0cf4a"), ComImport, InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
interface nsIInputStream
{
    void Close();
    int Available();
    int Read(IntPtr aBuf, uint aCount);
    int ReadSegments(IntPtr aWriter, IntPtr aClosure, uint aCount);
    bool IsNonBlocking();
}

ここでは、小さな .Net/C# アプリで、コードの他の場所から返された this のインスタンスを利用したいと考えていますが、int Read(IntPtr aBuf, uint aCount)メソッドをどう処理するかがわかりません。

byte[]メソッドから受け取ったコンテンツをローカル配列に入力したいのですReadが、IntPtr をどうするか、またはそれをマネージ バイト配列に変換する方法がわかりません。

ヒント/推測/指針はありますか? (しゃれは意図されていません)

4

2 に答える 2

1

この pinvoke 記事に基づいて、メソッド署名を次のように変更できるはずです。

int Read([Out] byte[] aBuf, uint aCount);
于 2009-10-21T12:41:45.860 に答える