C#调用DLL问题???????
读卡。函数原形:      返回值:见注1。 
 int   ReadCard(char   *   room,   char   *   gate,char   *   stime,   char   *   guestname,   char   *   guestid,   char   *   track1,   char   *   track2,   long   *   cardno,   int   *   st); 
 参数: 
 room   [out]:字符串指针,接收返回的房号,建议10字节。 
 gate   [out]:字符串指针,接收返回的授权公共通道,可以为NULL。 
 Guestname   [out]:字符串指针,接收返回的客人姓名,可以为NULL。 
 Guestid   [out]:字符串指针,接收返回的客人ID,可以为NULL。 
 track1   [out]:接收磁卡第1轨数据,可以为NULL。 
 track2   [out]:接收磁卡第2轨数据,可以为NULL。 
 Cardno   [out]:长整形指针,接收返回的卡号,可以为NULL。 
 St   [out]:整形指针,接收返回的卡状态,1-正常使用,3-正常注销,4-遗失注销,5-损毁注销,6-自动注销。可以为NULL。     
 char   *   测过对应的out   string   或out   StringBuild   或ref    
 long   *   测过对应的out   int   或   out   long   或ref    
 int   *   测过对应的out   int   或   out   IntPtr   或ref   
 再在不知道啥原因了,求救,谢谢     
------解决方案--------------------重新描述以下你的问题可能好点。
------解决方案--------------------StringBuilder sb = new StringBuilder(512);   
 传出的字符串只能用StringBuilder    
 注意,一定要分配购空间!
------解决方案--------------------[DllImport( "YOU.dll ", EntryPoint =  "ReadCard ", CharSet = CharSet.Unicode)] 
          unsafe  public static extern int SoundCom([MarshalAs(UnmanagedType.LPStr)]string room,[MarshalAs(UnmanagedType.LPStr)]string gate.....) 
 你这样调用一下.要是还是不行.你看看那个.dll文件的源程序,可能也有问题