1. 把结构体定义转换[StructLayout(LayoutKind.Sequential, Pack = 1)] // 这里按照你原来代码的方式写
    public struct strUp
    {
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
        byte OpType[2];            //操作类型
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
        byte TrType[2];            //交易类型
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
        byte Reserved[48]; 
    }[StructLayout(LayoutKind.Sequential, Pack = 1)] // 这里按照你原来代码的方式写
    public struct strDown
    {
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
        byte OpType[2];            //操作类型
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
        byte TrType[2];            //交易类型
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
        byte Reserved[48]; 
    }
2. 声明dll中的函数
[DllImport("myDll.dll", EntryPoint = "myMethod")]
private static extern EnumMessageType myMethod (int i, out strUp, out strDown);试试行不行吧