未经处理的异常: System.AccessViolationException: 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。

啊拉丁的鱼 2013-05-21 05:51:38
未经处理的异常: System.AccessViolationException: 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
如题:我用C++生成的一个DLL,用C#调用,结果在DOS窗口下运行出现了上面这个错误。但是能编译通过,直接按F5也能正常运行,没有报错!
错误提示如下:

未经处理的异常: System.AccessViolationException: 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
在 .TradeApi.reqUserLogin(String BROKER_ID, String INVESTOR_ID, String PASSWORD)
在 .TradeApi.UserLogin() 位置 D:\Users\huige\documents\visual studio 2010\Projects\CTP\SN_CTP\TradeApi.cs:行号 110
在 .FormTrade.tradeApi_OnFrontConnect() 位置 D:\Users\huige\documents\visual studio 2010\Projects\CTP\SN_CTP\FormTrade.cs:行号 1039


C#中的调用语句如下:

public int UserLogin() { return reqUserLogin(this.BrokerID, this.InvestorID, this.passWord); }
[DllImport(dllName, EntryPoint = "ReqUserLogin", CallingConvention = CallingConvention.Cdecl)]
static extern int reqUserLogin(string BROKER_ID, string INVESTOR_ID, string PASSWORD);

这是怎么回事呢?求高手解答!
...全文
1787 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
即日启程UP 2014-05-24
  • 打赏
  • 举报
回复
晕死,这个问题太坑了
变味奶茶 2014-04-25
  • 打赏
  • 举报
回复
已解决 也不说说怎么解决,晕
u010626819 2013-11-23
  • 打赏
  • 举报
回复
怎么解决的啊
JPG_8775 2013-08-23
  • 打赏
  • 举报
回复
引用 4 楼 AAA123524457 的回复:
问题已解决,谢谢各位
楼主怎么解决的啊? 我也遇到了,你的什么原因啊?
啊拉丁的鱼 2013-05-22
  • 打赏
  • 举报
回复
不知道有没有人遇到过类似的问题呢?
啊拉丁的鱼 2013-05-22
  • 打赏
  • 举报
回复
问题已解决,谢谢各位
  • 打赏
  • 举报
回复
遇到过这个问题 但这通常是其他原因引起的一系列异常, 楼主先找到源头吧 比如 我遇到的问题是,dll里面的一个方法,不能识别中文路径
  • 打赏
  • 举报
回复
我也遇到过这种问题,当时是因为用Marshal.AllocHGlobal和Marshal.StructureToPtr分配内存之后没有用Marshal.FreeGlobal释放。这个问题我当时在网上查了下,没有很明确的回答,大概就是分配了内存没有释放。你再仔细检查看看。

110,536

社区成员

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

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

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