0

私はこのコードを取り上げましたが、使用するのは危険なコードであり、WP7 では使用できない可能性があることを理解しています。おそらくtry/catchを使用して、このコードを安全に使用できるようにする方法について誰かが考えていますか?

GCHandle gch = GCHandle.Alloc(waveInBytes,GCHandleType.Pinned);
int pPtr;

unsafe
{
    pPtr = (int)gch.AddrOfPinnedObject().ToPointer();
    pPtr += 4;
}
4

1 に答える 1

1

一般に、ポインターは安全ではありません。IntPtr.ToPointer() は void* 型を返します。これがエラーの原因です。try/catch は役に立ちません。

実行しようとしている内容のより大きなコンテキストによっては、ToPointer() 呼び出しを ToInt32() に変更するだけでうまくいく場合があります。現実的には、この種のコードを WP7 に変換しようとすると、このコンパイラ エラー以外にも多くの問題が発生する可能性があります。

とにかく、それが役立つことを願っています。

于 2012-08-01T20:56:46.080 に答える