方法-尝试读取或写入受保护的内存。这通常指示其他内存已损坏

问题描述

尝试读取或写入受保护的内存。这通常指示其他内存已损坏
c#调用别人的dll里面的方法出现""尝试读取或写入受保护的内存。这通常指示其他内存已损坏。""!纠结了好久!请大家帮帮我吧

解决方案

如果是调用的非托管dll,则需要这样调用。
http://www.cnblogs.com/Charles2008/archive/2010/01/10/1643449.html

http://www.cnblogs.com/xugang/archive/2007/12/23/1011597.html

解决方案二:
通常就是参数类型不匹配,调用约定不匹配

解决方案三:
最好,写下C函数声明和C#中的声明。

出现这种情况应该是字符串,指针参数。或者返回值。
字符串的话,看看这篇文章 http://msdn.microsoft.com/en-us/library/s97shtze.aspx

还有这个http://msdn.microsoft.com/en-us/library/s9ts558h(v=vs.110).aspx#cpcondefaultmarshalingforstringsanchor5.aspx#cpcondefaultmarshalingforstringsanchor5 """")

时间: 2024-10-31 06:16:55

方法-尝试读取或写入受保护的内存。这通常指示其他内存已损坏的相关文章

求助,C#调用C++dll时提示:尝试读取或写入受保护的内存。这通常指示其他内存已损坏。

问题描述 C++dll的头文件接口描述如下:#pragmapack(push,1)typedefstructXCtrlStatus{XCtrlStatus(unsignedlongV=0){*reinterpret_cast<unsignedlong*>(this)=V;}unsignedcharERR:1;unsignedcharAUTO:1;unsignedcharRUN:2;unsignedcharDIR:2;unsignedchar:1;unsignedchar:1;unsignedc

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

问题描述 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

(不是伸手党)尝试读取或写入受保护的内存,这通常指示其他内存已损坏

问题描述 从主窗口中弹出PrintForm窗口,在PrintForm有"打印"按钮,点击打印时就出出现"尝试读取或写入受保护的内存,这通常指示其他内存已损坏"...已经查了很多资料,试了很多方法,都木有用,跪求解答privatevoidbtnPprint_Click(objectsender,EventArgse){this.printDialog1.Document=this.printDocument1;if(this.printDialog1.ShowDial

C# 调用C++的DLL文件出现问题。尝试读取或写入受保护的内存。这通常指示其他内存已损坏。

问题描述 我用C#开发一个项目,需要饮用C++的DLL,但是调用其中的方法是有几个函数正常,有一些方法总是报错.错误为:"尝试读取或写入受保护的内存.这通常指示其他内存已损坏."哪位大神可以帮我看看.这是DLL中的方法:typedefstructehInformation{std::stringehfilename;std::stringmark;//eh头文件的标示std::stringsendAddr;//eh头文件的发送地址std::vector<std::string&g

SDK3000设置视频帧率出现《尝试读取或写入受保护的内存》

问题描述 本人是一位新人,最近用C#在开发一个汽车管理系统,用SDK3000进行2次开发下面是我出问题的代码privatevoidConnect_Click(objectsender,EventArgse){intNumCard=0;SDK3000ApiClass.VCAInitSdk();SDK3000ApiClass.VCAGetDevNum(refNumCard);SDK3000ApiClass.SizeStreamSize;StreamSize.x=480;StreamSize.y=32

C#调用c写的dll 出现:尝试读取或写入受保护的内存。这通常指示其他内存已损坏

问题描述 求助各位大神!我最近在用C#封装一个C写的dll,在调dll中的方法时,时不时会报"尝试读取或写入受保护的内存.这通常指示其他内存已损坏".出现这样的问题,重启下机器就会好了,不过这也不是解决方案,继续大神帮我看看,如何才能杜绝这个问题.char*__readPeopleInfo_json()这个是C写的dll中的方法定义下面是C#引用及调用的代码[DllImport("HealthyCarder.dll")]publicstaticexternIntPt

vs2012-C# 写的form程序 调试时突然出先“尝试读取或写入受保护的内存。这通常指示其他内存已损坏。”

问题描述 C# 写的form程序 调试时突然出先"尝试读取或写入受保护的内存.这通常指示其他内存已损坏." 前几天写的一个程序,今天准备用了,当打开exe文件的时候突然停止,然后进入vs2012调试报错,在数据库链接那个块的打开数据库(看图片),不知道怎么回事.昨天是用还好着呢,还有将exe文件放到别人的电脑上就可以是用!求各路大神给个觉解方法吧!急急急啊!还有个问题,所有链接数据库的方法都抱着个错! 解决方案 C#尝试读取或写入受保护的内存.这通常指示其他内存已损坏.C#尝试读取或写

C# CAD 二次开发,尝试读取或写入受保护的内存。这通常指示其他内存已损坏。

问题描述 改方法在运用过程中有时会遇到,尝试读取或写入受保护的内存.这通常指示其他内存已损坏.但是有时又不会.Point3dsp=newPoint3d(dbPoint.Position.X,-99999,0);Point3dep=newPoint3d(dbPoint.Position.X,99999,0);Linelin1=newLine(sp,ep);Point3dCollectionpoint=newPoint3dCollection();lin.IntersectWith(lin1,Int

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

问题描述 privatevoidshow(refintn,refintp,paramslong[]array){//记录经纬度和方向doubleLonBegin=0;doubleLonEnd=0;doubleLatBegin=0;doubleLatEnd=0;stringloaddirect="";MapXLib.Pointspnt=newMapXLib.Point(); //定义点MapXLib.Pointdpnt=newMapXLib.Point(); //定义点//MapXLib