3

C# .NET で C ライブラリを使用するために dllImport を使用しています。このライブラリのメソッドの 1 つは、データ型 void* をパラメーターとして使用します。void* に一致するデータ型 IntPtr を C# で使用できることがわかりました。

この IntPtr パラメータの値を設定する方法がわかりません。実際、このパラメーターに float 値を入れたいと思っています。どうすればいいですか?

ご意見ありがとうございます。シモーネ

4

1 に答える 1

3

安全でないブロックを使用できる場合、これは機能します。

static IntPtr IntPtrFromFloat( float f )
{
    unsafe
    {
        return (*(IntPtr*)&f);
    }
}

float のバイナリ表現に等しいアドレスを含む IntPtr を作成します。

パラメータを float として宣言することも可能です。とにかく32ビットです[32ビットC-DLLを想定]。

于 2009-06-12T09:28:33.457 に答える