如下为dll中的原代码:
     struct HY_RECT_S
{
long lLeft;
long lRight;
long lTop;
long lBottom;
};      struct ID_CARD_S
{
  char szText[10][256];
  HY_RECT_S idRect[10];
};函数:
long __stdcall Get_IdcData(int iCardType, char* szFileNameIn, char *szFullFileNameOut, char *szHeadFileNameOut, ID_CARD_S* pstOut);
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、我是这么定义的:
 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
    public struct HY_RECT_S
    {
        public long lLeft;
        public long lRight;
        public long lTop;
        public long lBottom;
    };
    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
    public struct ID_CARD_S
    {
     [MarshalAs(UnmanagedType.ByValArray,SizeConst=2560)]
        public  byte[,] szText;
     [MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)]
        public HY_RECT_S[] idRect;
    }   [DllImport("IDRCore.dll", EntryPoint = "Get_IdcData", CharSet = CharSet.Ansi)]
        public static extern int Get_IdcData(int iCardType, string szFileNameIn, string szFullFileNameOut, string szHeadFileNameOut, ref ID_CARD_S pstOut);
执行函数:
Get_IdcData(iCardType, szFileNameIn, szFullFileNameOut, szHeadFileNameOut,   ref pId_Card) 是成功的,但去不到pId_Card的值出来,忙了好久了,都没搞定,希望大家来帮帮忙!!!