C#调用C++写的dll问题?
C++   函数 
 int   APIENTRY   CR_Reset(HANDLE   ComHandle,   BYTE   _Eject   ); 
 //参数 
 //_Eject:弹卡选择   0x30=不弹卡   0x31=弹卡到前端   0x32=弹卡到后端。 
 //返回值: 
 //如果函数调用成功,返回值为0。 
 c#   调用 
 [DllImport( "CR.dll ",   EntryPoint   =    "CR_Reset ",   SetLastError   =   true, 
                         CharSet   =   CharSet.Ansi,   ExactSpelling   =   true, 
                         CallingConvention   =   CallingConvention.StdCall)] 
                         public   static   extern   int   CRT310_Reset(IntPtr   ComHandle,   System.Byte   _Eject);   
 System.Byte   flag   =   0x31; 
 crt   =   CRT310_Reset(ComHandle,   Convert.ToByte(flag));   
 这样写有问题吗?   
 为什么返回值不等于0 
 是不是BYTE   传值有问题 
 请高手指教 
------解决方案--------------------如果其他的函数返回是对的,那应该不是象楼上说的是函数定义的问题.毕竟同一个DLL里的函数的编写方式应该是一样的. 
------解决方案--------------------[DllImport( "CR.dll ")] 
 public static extern int CRT310_Reset(IntPtr ComHandle, System.Byte _Eject);   
 System.Byte flag = 0x31; 
 int crt = CRT310_Reset(ComHandle, flag );