C#调用dll 参数是结构体 的问题。
[DllImport( "APIHid.dll ")] 
 public   static   extern   Int16   TransmitAPDU(int   hic,   ref   APDUEx   apdu);   
 调用的时候是这样的。 
 TransmitAPDU(0,   ref   apdu); 
 TransimtAPDU会传出apdu结构,并且结构中的一个数组在函数中赋值。运行的时候到这一步总说我的 
 “
尝试读取或写入受保护的内存。这通常指示其他内存已损坏” 
 是我从dll导入时,声明函数参数错误吗?应该怎么写才对?   
 ps:apdu是一个结构体,如下: 
             public   struct   APDUEx 
             { 
                         public   Byte   sendlen; 
                         public   Byte[]   sendbuf; 
                         public   Byte   recvlen; 
                         public   Byte[]   recvbuf; 
             }     
------解决方案--------------------你这样试试:      
 [StructLayout(LayoutKind.Sequential)]  
 public   struct   myStru  
 {  
 string   name;  
 [MarshalAs(UnmanagedType.ByValArray,   SizeConst=16)]  
 public   byte[]   bArr;  
 }