GCHandle構造体を使うといいらしい。
[DllImport("hogehoge.dll")] private static extern int dll_TestFunc(int frameno, IntPtr ary, int aryCount); public int TestFunc(int frameno, ref float[] ary) { int len = ary.Length; GCHandle gcH = GCHandle.Alloc(ary, GCHandleType.Pinned); int re = dll_TestFunc(frameno, gcH.AddrOfPinnedObject(), len); gcH.Free(); return re; }