IE和VB中响应OCX事件造成IE和VB程序退出的问题

olmouse 2007-05-23 09:35:09
我用VC写了一个OCX,然后我分别用IE和VB来调用该控件,并响应该OCX的事件,可是当该控件Fire事件的时候,造成VB写的程序(甚至VB)或IE会退出,这个是怎么回事?应该怎么解决?
...全文
401 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mr_DesTinY 2012-04-24
  • 打赏
  • 举报
回复
怎么解决的???
olmouse 2007-05-23
  • 打赏
  • 举报
回复
问题解决,是vc.net的问题
  • 打赏
  • 举报
回复
你F11进去看看fireEvent看看那里出的问题
olmouse 2007-05-23
  • 打赏
  • 举报
回复
现在已经赋值了,还是在FireEvent的地方出错:
VARIANT vState;
VARIANT vEnv;
VARIANT vTime;
vState.vt=VT_INT;
vState.intVal=nState;
CString szTemp;
szTemp.Format("%s",szEnv);
vEnv.vt=VT_BSTR;
vEnv.bstrVal=szTemp.AllocSysString();
szTemp.Format("%s",szTime);
vTime.vt=VT_BSTR;
vTime.bstrVal=szTemp.AllocSysString();
FireEvent(dispidOnStateChange2,EVENT_PARAM(VTS_VARIANT VTS_VARIANT VTS_VARIANT),vState,vEnv,vTime);
  • 打赏
  • 举报
回复
VARIANT 的 vt成员你赋值了没有?
olmouse 2007-05-23
  • 打赏
  • 举报
回复
void Fire_StateChange2(LONG nState,char* szEnv,char* szTime)
{
VARIANT vState;
VARIANT vEnv;
VARIANT vTime;
vState.intVal=nState;
CString szTemp;
szTemp.Format("%s",szEnv);
vEnv.bstrVal=szTemp.AllocSysString();
CString szTemp2=szTime;
vTime.bstrVal=szTemp2.AllocSysString();
FireEvent(dispidOnStateChange2,EVENT_PARAM(VTS_VARIANT VTS_VARIANT VTS_VARIANT),vState,vEnv,vTime);
}
现在代码改成这个了,可是发现FireEvent(dispidOnStateChange2,EVENT_PARAM(VTS_VARIANT VTS_VARIANT VTS_VARIANT),vState,vEnv,vTime);这句话会造成错误,说是mfc71d.dll处理异常,读取位置oxccccccc发生冲突?FireEvent的内存是在什么地方分配和释放啊?
  • 打赏
  • 举报
回复
VARIANT 的 pintVal是一个指针,你没有分配内存就赋值
要赋值也应该是这样
*(vState.pintVal)=nState;
olmouse 2007-05-23
  • 打赏
  • 举报
回复
void Fire_StateChange2(LONG nState,char* szEnv,char* szTime)
{
VARIANT vState;
VARIANT vEnv;
VARIANT vTime;
*vState.pintVal=nState;//这个地方执行完以后,发现nState的值居然变了,呵呵
CString szTemp;
szTemp.Format("%s",szEnv);
*vEnv.pbstrVal=szTemp.AllocSysString();
CString szTemp2=szTime;
*vTime.pbstrVal=szTemp2.AllocSysString();//这个地方出现错误,让我的vb程序退出
FireEvent(dispidOnStateChange2,EVENT_PARAM(VTS_VARIANT VTS_VARIANT VTS_VARIANT),vState,vEnv,vTime);
}
代码使这里,发现错误在
  • 打赏
  • 举报
回复
调试啊,十有八九是因为 内存删除的问题.

3,245

社区成员

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

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