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