社区
ATL
帖子详情
IE和VB中响应OCX事件造成IE和VB程序退出的问题
olmouse
2007-05-23 09:35:09
我用VC写了一个OCX,然后我分别用IE和VB来调用该控件,并响应该OCX的事件,可是当该控件Fire事件的时候,造成VB写的程序(甚至VB)或IE会退出,这个是怎么回事?应该怎么解决?
...全文
401
9
打赏
收藏
IE和VB中响应OCX事件造成IE和VB程序退出的问题
我用VC写了一个OCX,然后我分别用IE和VB来调用该控件,并响应该OCX的事件,可是当该控件Fire事件的时候,造成VB写的程序(甚至VB)或IE会退出,这个是怎么回事?应该怎么解决?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Mr_DesTinY
2012-04-24
打赏
举报
回复
怎么解决的???
olmouse
2007-05-23
打赏
举报
回复
问题解决,是vc.net的问题
珍惜生命远离CPP
2007-05-23
打赏
举报
回复
你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);
珍惜生命远离CPP
2007-05-23
打赏
举报
回复
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的内存是在什么地方分配和释放啊?
珍惜生命远离CPP
2007-05-23
打赏
举报
回复
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);
}
代码使这里,发现错误在
珍惜生命远离CPP
2007-05-23
打赏
举报
回复
调试啊,十有八九是因为 内存删除的问题.
vb
s和IE(二)
由于脚本本身是单线程的东西,所以一边等
事件
发生,一边
响应
用户操作,单纯的脚本不能实现,在《Windows 脚本编程核心技术精解》上找到了想要的答案,借助
vb
的机制,实现一个
ocx
,然后给
vb
s使用。 下面的过程...
如何优化
VB
程序
如何去优化你的
VB
程序
帮助 1、如何去优化你的
VB
程序
Visual Basic 作为一种高级编程语言,它也有着不可避免的缺点---开发出的应用
程序
运行速度慢。如果我们能够
程序
做一些优化,那么情况将会大大改善。要优化
程序
...
VB
速查大全(数据库、表格及报表编程) ★
VB
错误处理,ado常见错误,
VB
数据类型等,网上有很多教程是错的,强烈建议看此文
vb
数据类型(很多
程序
出
问题
出在这个,一定要看,
VB
msdn说的不太对)
VB
可用的AES加密sqlite_odbc 及 cairo_sqlite (
VB
RichClient自带的非odbc连接) 有
vb
RichClient代替winsock、实现
vb
多线程及远程调用activeX等
vb
源码
VB
源码:HOOK 万能网游密码截取技术之(诛仙) ... ...
VB
源码:IP地址输入框控件 下载地址:http://www.2e3.org/down.asp?url=lelecode_2
VB
源码:生成MD5码 下载地址:http://www.2e3.
不错
VB
代码,收藏!!!
'StrPtr还是唯一能直观地告诉你空字符串和null字符串的不同的方法。 '对于null字符串(
vb
NullString),StrPtr的返回值为0,而对于空字符串,函数的返回值为非零 '详细信息请查阅相关文档 ---------------------------...
ATL
3,245
社区成员
48,539
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章