//这是VC头文件函数的定义
int __stdcall K101_CheckCardPosition(HANDLE ComHandle, bool bHasMac_Addr, BYTE Mac_Addr, BYTE CardStates[2], char *RecordInfo);//C#调用这个函数 (handle是这样定义的 IntPtr handle=函数返回的Handle)
[DllImport("K101_DLL.dll", EntryPoint = "K101_CheckCardPosition")]
public extern static int K101_CheckCardPosition(IntPtr handle, bool bHasMac_Addr, Byte MacAddr, ref Byte[] CardStates, string RecrodInfo); string recordInfo="";
Byte[] status = new Byte[2];
int result = SSCardDllImport.K101_CheckCardPosition(handle,false,(byte)0,ref status , recordInfo);
执行到这个方法后程序自动退出。问:我的参数类型弄错误了?
int __stdcall K101_CheckCardPosition(HANDLE ComHandle, bool bHasMac_Addr, BYTE Mac_Addr, BYTE CardStates[2], char *RecordInfo);//C#调用这个函数 (handle是这样定义的 IntPtr handle=函数返回的Handle)
[DllImport("K101_DLL.dll", EntryPoint = "K101_CheckCardPosition")]
public extern static int K101_CheckCardPosition(IntPtr handle, bool bHasMac_Addr, Byte MacAddr, ref Byte[] CardStates, string RecrodInfo); string recordInfo="";
Byte[] status = new Byte[2];
int result = SSCardDllImport.K101_CheckCardPosition(handle,false,(byte)0,ref status , recordInfo);
执行到这个方法后程序自动退出。问:我的参数类型弄错误了?
只要在输出参数前面加上 [In,Out]就可以了
public extern static int K101_CheckCardPosition(IntPtr handle, int bHasMac_Addr, Byte MacAddr, [In,Out] Byte[] CardStates, [In,Out] StringBuilder RecrodInfo);