关于ASSERT(m_pCtrlSite != NULL)中断的问题,急!

blueskyxiang 2010-09-19 04:00:17
VC程序调试到以下函数的ASSERT(m_pCtrlSite != NULL); // not an OLE control (not yet, at least)这里就出现错误,然后自动跳到DebugBreak();并弹出一个错误窗口:xxxxx.exe中的0x7c92120e处未处理的异常:用户断点.请问如何解决这个问题?
void AFX_CDECL CWnd::InvokeHelper(DISPID dwDispID, WORD wFlags, VARTYPE vtRet,
void* pvRet, const BYTE* pbParamInfo, ...)
{
ASSERT(m_pCtrlSite != NULL); // not an OLE control (not yet, at least)

if (m_pCtrlSite == NULL)
return;

va_list argList;
va_start(argList, pbParamInfo);
m_pCtrlSite->InvokeHelperV(dwDispID, wFlags, vtRet, pvRet, pbParamInfo,
argList);
va_end(argList);
}
...全文
1473 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
gw_net 2010-09-20
  • 打赏
  • 举报
回复
AfxEnableActiveControlContainer()加了没?
向立天 2010-09-19
  • 打赏
  • 举报
回复
你的程序中做com组件初始化了么
blueskyxiang 2010-09-19
  • 打赏
  • 举报
回复
有控件变量,但控件变量是我修改控件之前的变量,修改控件后再重新注册控件就没再重新添加控件变量,这个没有关系的吧?
xxd_qd 2010-09-19
  • 打赏
  • 举报
回复
没有控件变量?那你的StreamInput是写在哪里的?
blueskyxiang 2010-09-19
  • 打赏
  • 举报
回复
控件成功注册后需要重新插入此控件和添加此控件变量吗?
blueskyxiang 2010-09-19
  • 打赏
  • 举报
回复
生成并已注册成功
xxd_qd 2010-09-19
  • 打赏
  • 举报
回复
你的控件生成了没有?
blueskyxiang 2010-09-19
  • 打赏
  • 举报
回复
我的程序是运行到函数
long StreamInput(unsigned char * data, long size)
{
long result;
static BYTE parms[] = VTS_PUI1 VTS_I4 ;
InvokeHelper(0x58, DISPATCH_METHOD, VT_I4, (void*)&result, parms, data, size);
return result;
}

后调用InvokeHelper(0x58, DISPATCH_METHOD, VT_I4, (void*)&result, parms, data, size);
函数的,就出现这个错误了
test_machine 2010-09-19
  • 打赏
  • 举报
回复
像6楼说的,错误根本不在这里
test_machine 2010-09-19
  • 打赏
  • 举报
回复
m_pCtrlSite 没有指向一个实例,无效的指针
Eleven 2010-09-19
  • 打赏
  • 举报
回复
Debug下,打开call stack窗口先看看哪个函数调用出错?
jogger007 2010-09-19
  • 打赏
  • 举报
回复
ASSERT(m_pCtrlSite != NULL); // not an OLE control (not yet, at least)
===========
m_pCtrlSite 不是一个OLE控件,至少现在不是。
恐怕是你遗漏了初始化 或者 赋值什么的函数。
如果你是抄别人的代码,就好好看看源代码在调用此函数之前对m_pCtrlSite都做了哪些操作
blueskyxiang 2010-09-19
  • 打赏
  • 举报
回复
不是自己写的
向立天 2010-09-19
  • 打赏
  • 举报
回复
ASSERT(m_pCtrlSite != NULL)
这句话应该不是你自己写的吧
断下来后看调用堆栈
定位到自己的代码才好分析原因
blueskyxiang 2010-09-19
  • 打赏
  • 举报
回复
去掉还是不行,程序依然在注释掉的位置报错
huzhibin2000 2010-09-19
  • 打赏
  • 举报
回复
ASSERT(m_pCtrlSite != NULL); // not an OLE control (not yet, at least)
去掉这行,就不会报错了。
jhayumu 2010-09-19
  • 打赏
  • 举报
回复
m_pCtrlSize == NULL,把assert断言去掉

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧