“堆被损坏”这个让人崩溃的问题

用libcurl的代码直接在exe中运行没丝毫问题,但一放到dll中就问题百出,先是编译出的dll在depend中提示缺少msjava.dll,接着不管在debug或release下调试都提示“堆被损坏”,差点儿被整崩溃了,最后的解决办法让人非常之惊讶!

 

以下引用自http://hi.baidu.com/yhustc/blog/item/04f74c1b073da5d1ac6e75d3.html/cmtid/ba14620382936683d53f7caf

 

昨天调程序,recvfrom接收UDP数据,修改了一下缓冲区,将数据填进来,然后程序结束时始终报这个异常。

不管用Release还是Debug,然后参照以前的程序把项目设置修改了一下,仍然不能解决。

网上搜索,都说是数组越界造成堆栈出错,问题是我没有对接收数据的缓冲区进行太多的处理啊,只有recvfrom和一个printf设计到这个buffer,百思不得其解。从MSDN上面COPY一个UDP的例子出来,运行仍然报这个错误。

早上来了到VC6里面跑一样的程序,没问题。Debug调试,没有问题。

然后将项目从VC6转换到VC2005,问题出现了。O,F*CK!

绝望之下直接运行Release目录下的EXE,不从VS启动了,测试了一下,没有问题,没有抛出任何异常。再一次的F*CK。到底是什么问题?

我猜应该是从VS启动的时候加载了一下调试用的DLL,然后如错误信息所说“它所加载的任何DLL中有bug”。所以直接启动程序不会报这个错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值