为什么我写了个dll在其中调用create new出一个对象,调用destroy delete它,但老是有这样的错误 ,Debug Error!,Damage:after Normal block 为什么我写了个dll在其中调用create new出一个对象,调用destroy delete它,但老是有这样的错误 ,Debug Error!,Damage:after Normal block(#59) at 0x01631a60!!!!我明明已经正确无误的删除对象了啊高手帮忙啊 !!!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 DLL方加AFX_MANAGE_STATE(AfxGetStaticModuleState());试试!比如下面的函数这样加!CMyFind{ CString *FuncA() { AFX_MANAGE_STATE(AfxGetStaticModuleState());// CString * pStr = new CString("aaa"); return pStr; }} 导出函数中,如果要返回地址的,一定要加AFX_MANAGE_STATE(AfxGetStaticModuleState());否则地址是相对地址(dll模块),而不是exe的地址 看看这个帖子,是否有帮助http://community.csdn.net/Expert/topic/3750/3750278.xml?temp=.2951319 我也碰到过这个错误,最后查出来是写内存写过头了,换句话说就是分配内存时只分配了1个字节,写的时候写入了两个或更多。建议重点检查 memcpy、memset 函数的使用,看长度参数是不是比分配的内存长度要大。 内存删除有问题啊,你最好检查所有分配的内存,包括构造里头的,用Boundscheck检查一下也可以 map查找的奇怪问题 再问如何向加入的对话框发送消息 filemon文件驱动安全模式如何启动呀? richedit中字符串左对齐问题 男子鞍马夺金,散分! 压力测试出现问题,如何确定错误的原因? 下面是个得到本机的计算机名,但奇怪的事情终于发现了........请各位参加,UP都有分! 如何把&pi->Name.Buffer (类型为:PWCH)转为char呢? 泱泱大国,竟无人知道乎??? 30分钟救火----《深入浅出MFC》最新版? 天呀!!帮帮我吧,CDC问题。 char band[100000]; //用什么办法代替?
加AFX_MANAGE_STATE(AfxGetStaticModuleState());试试!比如下面的函数这样加!
CMyFind
{
CString *FuncA()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());// CString * pStr = new CString("aaa");
return pStr;
}
}
否则地址是相对地址(dll模块),而不是exe的地址