非托管dll-C#调用非托管DLL,报“其他内存已损坏”,请问怎么解决呢?

问题描述

C#调用非托管DLL,报“其他内存已损坏”,请问怎么解决呢?

定义:

 [DllImport("BSEncrypt.dll")]
public static extern bool MD5String(ref string instr, int inlen, ref string outstr, int outlen);

调用:

 String ls_MD5Password = new String('', 100);
string as_Password = userid + pwd;
var loginCheck = BSEncrypt.MD5String(ref as_Password, as_Password.Length, ref ls_MD5Password, 100);

错误:
“System.AccessViolationException”类型的未经处理的异常在 未知模块。 中发生
其他信息: 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。

解决方案

相关问题帖子

解决方案二:

这DLL有内存泄漏吧;
参考:http://www.jb51.net/article/46384.htm
也有可能是DllImport参数的问题;

时间: 2025-01-01 14:09:10

非托管dll-C#调用非托管DLL,报“其他内存已损坏”,请问怎么解决呢?的相关文章

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

问题描述 C# 调用C++ dll是出现这样的错误"尝试读取或写入受保护的内存.这通常指示其他内存已损坏. 调试时是这样的: SDK上是这样说明的: 我调用这个dll时是这样的: 困扰了很久,希望有大神来看一看,感激不敬 解决方案 C#尝试读取或写入受保护的内存.这通常指示其他内存已损坏.C# 尝试读取或写入受保护的内存 .这通常指示其他内存已损坏.C#尝试读取或写入受保护的内存.这通常指示其他内存已损坏. 解决方案二: 先看是不是你的参数有问题,然后就是数据对不对 解决方案三: 是不是重复调用

求助,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

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

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

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

问题描述 c++原型函数boolDetBelt(constchar*chImgFile,doubledStrictDegree=1.0,XSCRECTroiRect=XSCRECT(),constchar*dstFile=NULL);structXSCRECT{intx;inty;intheight;intwidth;XSCRECT(){x=0;y=0;height=0;width=0;}};声明c#代码[StructLayoutAttribute(LayoutKind.Sequential)]

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

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

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

问题描述 C++:GPSSUPPORT_APIint__stdcallress(unsignedchar*compr,unsignedlongcomprLen,unsignedchar**uncompr,unsignedlong*uncomprLen);C#:publicstaticexternintZlibUncompress(refbyte[]compr,longcomprLen,refbyte[]uncompr,reflonguncomprLen);调用:privatebyte[]Keys

C#调用其他语言DLL库,提示尝试读取或写入受保护的内存。这通常指示其他内存已损坏

问题描述 C#调用其他语言DLL库,提示尝试读取或写入受保护的内存.这通常指示其他内存已损坏代码如下==========================================DLL函数int__stdcallActionReceived(constchar*devId,constint*windowId,constchar*cmd,char*data)==========================================C#调用[DllImport(@"Caller.dl

求教如何解决C#调用C++ DLL出现“尝试读取或写入受保护的内存。这通常指示其他内存已损坏”错误

问题描述 我正在编写设备处理程序,使用C++写的DLL,其中一个部分需要用到回调函数.现在遇到的问题是使用InitDevice()函数后,回调函数能够正常运行获取返回数据,但是随后调用Close()函数,就会导致系统报出"尝试读取或写入受保护的内存.这通常指示其他内存已损坏"错误.使用了N种方式也没有解决这个问题,有哪位高手能够帮帮忙啊!C++函数原形如下:extern"C"__declspec(dllexport)HANDLE__stdcallLogin(cons

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

问题描述 调用一个自己写的c++的dll,结果出现问题提示如下:"System.AccessViolationException"类型的未经处理的异常出现在BidingSystem_Client.exe中.其他信息:尝试读取或写入受保护的内存.这通常指示其他内存已损坏.--------------------------------------------c#[DllImport("PEKS.dll",CharSet=CharSet.Ansi,CallingConv