ASSERT IsWindow vs

场景:Visual C++ 6.0 到VS2010中出现的ASSERT(IsWindow(pTemp->m_hWnd))异常

Visual C++ 6.0 到VS2010中出现的ASSERT(IsWindow(pTemp->m_hWnd))错误
本帖最后由 lixiaoli20072765 于 2013-03-24 15:18:50 编辑
将使用 Visual C++ 6.0 编译的 ActiveX 控件嵌入到使用 VS2010 开发的项目的对话框中,可能会使程序在运行时进行断言,断言将在文件 occcont.cpp 中源代码的以下行上:ASSERT(IsWindow(pTemp->m_hWnd))。如何解决这个问题,求大神,一直从网上查相关资料,但是貌似都不行耶,求助!!!也是这个错误“File:f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\occcont.cpp Line:925”
vs2010 vc6

------解决方案--------------------
如果你已注册这个控件,那么你只能找ActiveX 控件源程序,在VS2010里重新编绎一遍试试.有可能是在VC6.0下用了已被淘汰的库或函数,并不是标准的WIN32的函数及库
------解决方案--------------------
编绎成功未必就一定可以运行,这就象32位的程序在64位的操作系统也能编绎成功,但却不能运行,因为32位的程序里用到了64位不支持的函数,但编绎也会成功的

------解决方案--------------------

那句代码的代表的意思可能是,某个窗口创建不成功,最有可能的就是 控件 创建不成功。
首先确认你的 ActiveX 的dll或ocx文件已经成功的注册。
其次,确认你那个VS2010 的项目是64位还是32为的。 64位应用程序是不能加载32位的DLL的。