Windows开发 无论是Win32还是MFC 只要是调试方式运行 退出时都会出错!“其原因可能是堆被损坏,这也说明 myWinTest1.exe 中或它所加载的任何 DLL 中有 bug。”解决办法

Windows开发 无论是Win32还是MFC 只要是调试方式运行 退出时都会出错!!!!“其原因可能是堆被损坏,这也说明 myWinTest1.exe 中或它所加载的任何 DLL 中有 bug。”
先说明一下环境,我用的机器是64位的,VS2005。
一开始是开发MFC程序时 启动调试(F5)就会出错,无论是Debug模式还是Relese模式。
不过以 开始执行(不调试)(Ctrl+F5)就不会出错..........

以下是错误的输出:
“HEAP[SimpleImage.exe]: HEAP: Free Heap block 2da3350 modified at 2da33b0 after it was freed
Windows 已在 SimpleImage.exe 中触发一个断点。
其原因可能是堆被损坏,这也说明 SimpleImage.exe 中或它所加载的任何 DLL 中有 bug。”

一开始我以为是我写的Dll有问题,但后来有空试了一下Win32的项目,用VS05新建了一个Win32的Windows程序,没有做任何的改动,直接启动调试(F5)同样会报错........
"HEAP[myWinTest1.exe]: HEAP: Free Heap block 2333350 modified at 23333b0 after it was freed
Windows 已在 myWinTest1.exe 中触发一个断点。
其原因可能是堆被损坏,这也说明 myWinTest1.exe 中或它所加载的任何 DLL 中有 bug。"

会不会跟机器的配置有关,还是程序需要什么调整呢?

------解决方案--------------------
估计是中毒了。
------解决方案--------------------
先看你的编译器是否新建任何一个工程,什么都不做,就出错
其次可以把你的DLL放到其他机器上使用,通过这些排除法看是环境问题还是工程等有问题...
------解决方案--------------------
你可以做如下的调试:
1、建立一个空工程,然后直接加载dll,不做任何的其他的操作,然后编译运行,看有没有问题
2、放弃其他的操作,直接调用其中的一个函数,然后直接调用退出函数,然后看看有没有问题。
3、放弃exe中的任何new之类的申请内存的操作。然后去编译调试,看有没有问题
4、检查exe调用函数是否正确,是不是调用顺序,或者传入参数不对?
5、检查你句柄的使用是否进行了有效的判定。

即使dll中有问题的话,你可以检测到从哪个入口函数调用的时候才会出现问题
------解决方案--------------------
引用楼主 zeuskaaba 的帖子:
先说明一下环境,我用的机器是64位的,VS2005。 
一开始是开发MFC程序时 启动调试(F5)就会出错,无论是Debug模式还是Relese模式。 
不过以 开始执行(不调试)(Ctrl+F5)就不会出错.......... 

以下是错误的输出: 
“HEAP[SimpleImage.exe]: HEAP: Free Heap block 2da3350 modified at 2da33b0 after it was freed 
Windows 已在 SimpleImage.exe 中触发一个断点。 
其原因可能是堆被损坏,这也说明 SimpleImage.exe 中或它所加载的任何 DLL 中有 bug。” 

一开始我以为是我写的Dll有问题,但后来有空试了一下Win32的项目,用VS05新建了一个Win32的Windows程序,没有做任何的改动,直接启动调试(F5)同样会报错........ 
"HEAP[myWinTest1.exe]: HEAP: Free Heap block 2333350 modified at 23333b0 after it was freed 
Windows 已在 myWinTest1.exe 中触发一个断点。 
其原因可能是堆被损坏,这也说明 myWinTest1.exe 中或它所加载的任何 DLL 中有 bug。" 

会不会跟机器的配置有关,还是程序需要什么调整呢?

------解决方案--------------------
探讨
晕,不会吧。。。。。。。。
这病毒的兼容性也太强了吧

------解决方案--------------------
探讨
估计是中毒了。

------解决方案--------------------
VC6要先装。你可以重装05试试。
------解决方案--------------------
好奇怪的问题

估计是环境太乱了
------解决方案--------------------
dll hell出现了。
------解决方案--------------------
看起来太像中毒了,处方意见:
1、备份你的文档,包括源程序。(EXE程序不要备份)
2、将所以盘格式化。
3、重装XP+SP2或3,并重装VC6,再恢复原来的源程序或新建一个类似的。
4、“全面重新编译” --- 不要只点击编译,要全面重新编译。切记!
这样还不好的话,可以继续发贴反馈情况。
------解决方案--------------------
探讨
图片贴不上去吗?
http://static4.photo.sina.com.cn/orignal/4798cfd4468004bb9b553&690

------解决方案--------------------
UP!