在写一个接口,调用设备读取银行卡信息,调用的是一个读卡器提供的dll。
接口文档如下:
```c++
int __stdcall ReadPBOCGenARQC(char *Field2, char *Field35, char *Field36,char * ARQC, char *ErrMsg);
接口描述:
该接口不是立刻返回,循环读卡,流程请参考指令扫码流程 ,超时时间30秒。
入参: 无
出参:
Field2:银联2域数据,数据转换为ASCII(主账号)
Field35:银联35域数据,数据转换为ASCII
Field36:银联36域数据,数据转换为ASCII
ARQC:银联55域数据,数据转换为ASCII
返回: 0成功 非零失败
错误:ErrMsg(补充错误信息)
我的代码:
```c#
[DllImport("HealthyCarder.dll", EntryPoint = "ReadPBOCGenARQC", CallingConvention = CallingConvention.Cdecl)]
public static extern int ReadPBOCGenARQC(StringBuilder Field2, StringBuilder Field35, StringBuilder Field36, StringBuilder ARQC, StringBuilder ErrMsg);
运行的时候提示:其他信息: 对 PInvoke 函数“WqReadCard!WqReadCard.clsReadCard::ReadPBOCGenARQC”的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。
CallingConvention = CallingConvention.Cdecl 这段加不加,都报错。麻烦帮忙看看,指导一下。。谢谢