C# Winform项目中, 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。

C/C++ 代码,这个是第三方提供的外部方法(调用“华大HD-900身份证阅读器接口函数”):
int HD_Read_BaseInfo(char* pBmpData, char *pName, char *pSex, char *pNation, char *pBirth, char *pAddress, char *pCertNo, char *pDepartment, char *pEffectData, char *pExpire);

我在C#中调用该方法,HD_Read_BaseInfo方法第一次调用正常,第二次调用提示"尝试读取或写入受保护的内存。这通常指示其他内存已损坏。"

[DllImport("HDstdapi.dll")]
public static extern int HD_Read_BaseInfo(string pBmpData, string pName, string pSex, string pNation, string pBirth, string pAddress, string pCertNo, string pDepartment, string pEffectData, string pExpire);

附调用代码:
int init_result = 1000;
init_result = HD_InitComm(1001); //初始化连接

if (init_result == 0)
{
int auth_result = 1000;
auth_result= HD_Authenticate(); //卡认证
if (auth_result == 0)
{

try
{
int red_result = 1000;

  //读卡操作,报"尝试读取或写入受保护的内存。这通常指示其他内存已损坏。"错误。
  red_result = HD_Read_BaseInfo(null, null, null, null, null, null, null, null, null, null);    

}
catch(Exception ex)
{
MessageBox.Show("form1====" + ex.Message);
}

}

CHDNetSDK.HD_CloseComm();
请各位帮忙看看,谢谢!

1个回答

今天打开一个之前写的程序,......
答案就在这里:C#尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问