描述:
我用MFC Activex Control向导创建的控件用“ActiveX Control Test Container”进行测试的时候加载失败(报一个错后退出)。使用向导的时候我用的全是默认选项什么也没有改,难道还有手动加些什么代码吗?
解决方案1:
我估计不是编程的问题,建议重装vc6不行的话重装系统:)
解决方案2: 帮楼主查看了COleControl::CreateControlWindow,整个函数中只有下面这句会对m_hWnd产生影响,建议楼主在此处下个断点
CreateEx(dwExStyle, AFX_WNDOLECONTROL, m_strText, dwStyle,
rcPos.left, rcPos.top, rcPos.Width(), rcPos.Height(),
hWndParent, 0);
然后跟踪进CreateEx,确认里面发生错误的是CreateWindowEx这个API函数(如果是则说明是参数有问题),然后再跳出COleControl::CreateControlWindow函数,在它的上一个调用进入点后加入GetLastError以检查错误代码,判断错误是什么。他的上一个调用进入点可能还是MFC源码,则还需上溯到更上面,直到是自己的代码时才可加入GetLastError来检测错误代码。
而当发生断言失败时,简单的忽略就可继续运行,不过要是代码在执行到调用GetLastError之前需要使用m_hWnd的话,那么就糟糕了。
我现在这里的VC比楼主的那个还有问题,它下的断点不能中断,断言失败后也不能调试,所以我也无法帮楼主查看在哪个地方放置GetLastError最好,抱歉。
窗口没有创建出来。再仔细跟踪吧。
在CreateControlWindow函数中调用的任何一个函数尽量跟踪进去,看看在那里对m_hWnd赋值
然后在研究为啥没有创建成功
俺觉得正常的情况下不应该出这个问题呀。
建议你在别的计算机上试验一下,也许你的vc或你的环境不对?
全默认如果都错的话,那你就把你的vc6重新装一个!