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 );