急救!C#调用C++的dll,未能封装类型
//******************************************************** 
 #define   EFMI_POINTNAMELENGTH	48	 
 //结构 
 typedef   struct   defefSTReadRtInfoRequest{ 
 	long   time;			 
 	char   pointName[EFMI_POINTNAMELENGTH+1];                  
 	char   ednaServ[EFMI_POINTCOMMLENGTH+1];	 
 }efSTReadRtInfoRequest;   
 //****************************************************************   
 //**************************************************************** 
 typedef   struct   defefSTReadRtResponse{  	 
 	double   value; 
 	long   time; 
 	unsigned   short   status;///////////////////////////////////////// 
 	char   pointName[EFMI_POINTNAMELENGTH+1];//点名,扩展ID 
 }efSTReadRtInfoResponse;   
 函数: 
 BOOL      effnEDClientCheckPointInfoByTimeEx( 
 efSTReadRtInfoRequest*pReqBuffer, 
 efSTReadRtInfoResponse   *   pResBuffer, 
 unsigned	long   Count    
 );获取实时数据。     
 //c#调用 
             [StructLayout(LayoutKind.Sequential)]    
             public      struct   defefSTReadRtInfoRequest 
             { 
                public      long   time;		            
                   [MarshalAs(UnmanagedType.ByValArray,   SizeConst   =   49)] 
                public      char[]   pointName; 
                         [MarshalAs(UnmanagedType.ByValArray,   SizeConst   =   48)] 
                         public   char[]   ednaServ;              
             }   
 //****************************************************************   
 //**************************************************************** 
             [StructLayout(LayoutKind.Sequential)]    
    public   struct   defefSTReadRtResponse{ 
                public   double   value; 
                public   long   time; 
                public   UInt16   status; 
                [MarshalAs(UnmanagedType.ByValArray,   SizeConst   =   48)] 
                public   char[]   pointName;//            
 };   
 //函数   
    [DllImport( "efEDClient.dll ",   EntryPoint   =    "effnEDClientCheckPointInfoByTimeEx ",   CharSet   =   CharSet.Unicode)] 
                         public   static   extern   bool   effnEDClientCheckPointInfoByTimeEx(ref   defefSTReadRtInfoRequest   requestBuffer,out   defefSTReadRtResponse   responseBuffer,[MarshalAs(UnmanagedType.Error)]UInt32   count);     
 //调用   
 defefSTReadRtInfoRequest   req=new   defefSTReadRtInfoRequest(); 
                            char[]   arrP   =   new   char[49]; 
                            char[]   arrServ   =   new   char[48];   
                            arrP   =    "GDHYSSIS.U31_RTS.1EHC:C47.RO01 ".ToCharArray(); 
     &