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

hzhsky1985 2009-04-21 04:17:54
代码如下:
[DllImport("wsnmp32.dll")]
public static extern SNMPAPI_STATUS SnmpStrToOid(StringBuilder str, ref SMIOID oid);
StringBuilder name2 = new StringBuilder(256);
name2.Append("1.3.6.1.2.1.2.2.1.16");
SnmpAPI.SnmpStrToOid(name2, ref Oid);
使用果网上很多方法都不行,SnmpAPI.SnmpStrToOid总会抛出“尝试读取或写入受保护的内存。这通常指示其他内存已损坏”这个异常。请问各位高手怎么解决,谢谢,分数不够可以另开贴加分
...全文
9003 39 打赏 收藏 转发到动态 举报
写回复
用AI写文章
39 条回复
切换为时间正序
请发表友善的回复…
发表回复
nvshenxp 2012-04-05
  • 打赏
  • 举报
回复
解决方法贴下哎。。。
Gavin0701 2011-11-14
  • 打赏
  • 举报
回复
楼主,后面有解决吗,我第一次调用时就出错,还没解决
tdskee 2011-08-17
  • 打赏
  • 举报
回复
这个。。。。
liangyan86929 2011-03-18
  • 打赏
  • 举报
回复
我也遇到一样的问题,C#调用C++编写的dll,创建对象时出错,重新引用了还是不行,烦恼中~~~
hzhsky1985 2009-05-04
  • 打赏
  • 举报
回复
最终还是没有解决到,不过自己编写了一个服务来定时重启他,总算能勉强用下去,结贴
ycz_0 2009-04-23
  • 打赏
  • 举报
回复
参数要注意
xufzu123 2009-04-23
  • 打赏
  • 举报
回复
学习~学习~
hzhsky1985 2009-04-23
  • 打赏
  • 举报
回复
我也觉得是参数问题,但问题是问题究竟出在那
螳螂86 2009-04-23
  • 打赏
  • 举报
回复
螳螂86 2009-04-23
  • 打赏
  • 举报
回复
麻烦高手看下小弟的菜鸟问题:http://topic.csdn.net/u/20090423/13/6c91a301-92de-4d7a-b607-8c39c5affae6.html
wjf8882300 2009-04-23
  • 打赏
  • 举报
回复
这个问题我也遇到过,最终检查问题出在DLL里面,里面通过指针动态申请的空间没有释放.不知道你是不是跟我一样的.
jivvuw 2009-04-23
  • 打赏
  • 举报
回复
SnmpStrToOid(StringBuilder str, ref SMIOID oid);
你确定????
注意 c++里有const这个关键字~!
hzhsky1985 2009-04-23
  • 打赏
  • 举报
回复
upup
hzhsky1985 2009-04-22
  • 打赏
  • 举报
回复
楼上,之前是用string的,不过string也一直出错,在网上查到StringBuilder也不行,我也[DllImport("wsnmp32.dll", CharSet=CharSet.ANSI)]这样试过,一样不行,我快崩溃了,都快1天了,还是解决不了
Edward 2009-04-22
  • 打赏
  • 举报
回复
注意第一个参数的类型是LPCSTR,而不是LPCTSTR。所以你要用[DllImport("wsnmp32.dll", CharSet=ANSI)](不是确切代码,大概如此)。

还有就是如果不是OUT类型的字符串参数,可以不使用StringBuilder。这里明显可以不用StringBuilder。
hzhsky1985 2009-04-22
  • 打赏
  • 举报
回复
大侠,救命啊
hzhsky1985 2009-04-22
  • 打赏
  • 举报
回复
upup
hzhsky1985 2009-04-22
  • 打赏
  • 举报
回复
另外还有另一个方法也是这样出错
[DllImport("wsnmp32.dll")]
public static extern IntPtr SnmpCreateVbl(IntPtr session, ref SMIOID name, ref SMIVALUE value);

vbl = SnmpAPI.SnmpCreateVbl(session_id, ref Oid, ref sv);
这两个方法会有什么共通之处吗
hzhsky1985 2009-04-22
  • 打赏
  • 举报
回复
再顶一下
hzhsky1985 2009-04-22
  • 打赏
  • 举报
回复
楼上的谢谢,但我按您的改了,还是不行,直接弹出另一个异常,另外out ref应该不能同时并存吧。但无论如何,充心的谢谢您,我再试试吧
加载更多回复(19)

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧