1

組み込みデバイスに接続するために、構造内に配列を作成する必要があります。そのため、構造体とその内部フィールドの両方へのポインターを使用しています...以下のコードを試しましたが、100 個の int を作成して完了すればよいでしょうか??

[StructLayout( LayoutKind.Sequential )]
public struct HRTF
{
    UInt32 PPP;
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 100)]
    UInt32[] taps;
    . . . 
}

. . . 

HRTF effects = new HRTF();

/* --- ERROR cannot get address of, Sizeof ect ..to unmanaged typE 'HRTF' */
int offset = ((int)&effects.taps - startOffset) / 4; 
int length = sizeof(HRTF) / 4;
4

1 に答える 1

1
fixed (uint* pt = effects.taps)
{
    // pt is not pointer to taps
}

var bts = Marshal.SizeOf(effects); // bts has size of HRTF in bytes.

また

var bts = Marshal.SizeOf(typeof(HRTF));
于 2012-05-08T16:59:01.580 に答える