开发的一个ActiveX控件在浏览器中出现Stack Overflow(FIX: Call to CWnd::MoveWindow Causes Stack Overflow)问题,下载了Visual Studio 6.0 Service Pack来安装后,所有程序重新编译,结果是以上问题仍然没有解决,还出现了新问题:以前运行正确的程序现在运行不正确了,不知是什么原因,有哪位大侠遇到过,给点帮助啊。

解决方案 »

  1.   

    有没有可能因为某些条件重复调用MoveWindow
      

  2.   

    谢谢楼上各位。
    请再到微软的网站看看这个文章FIX: Call to CWnd::MoveWindow Causes Stack Overflow吧,好象说是VC6的BUG,要下载Visual Studio 6.0 Service Pack安装,才能解决问题。在没有打这个补丁时:
    我的MFC ActiveX控件中有一个数组,当这个数组在较小的时候,程序在浏览器中运行不会出错,当把这个数组改大些,则出现Stack Overflow错误。程序绝对没错,查看了文章FIX: Call to CWnd::MoveWindow Causes Stack Overflow文章后,才知道是VC6的一个BUG。现下载并打上这个补丁,所有程序全部重新编译,结果有很少部分程序运行不正确,同时ActiveX控件的问题也没有解决,是不是这个补丁修改了MFC库中的某些函数接口或实现(除了BUG外的,以前正确的东西),这点不明白。根据文档,看了看补丁后MFC42.dll的文件版本是6.0.9782,这与文章INFO: Visual Studio 6.0 Service Pack 1 Readme中提到的版本号6.00.8267.0(sp1)还要高,另有一文章说高版本也包含解决了底版本的BUG,真搞不懂到底怎么回事,有遇到过这个问题的朋友再提个醒,谢谢!
      

  3.   

    用什么VC6,老早好淘汰了,试试用VS2003或者2005编译。