• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > 在ActiveX控件中,我用了一个线程,但是在网页上使用时,却无法触发连接点事件,请问是为什么?

在ActiveX控件中,我用了一个线程,但是在网页上使用时,却无法触发连接点事件,请问是为什么?

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了 在ActiveX控件中,我用了一个线程,但是在网页上使用时,却无法触发连接点事件,请问是为什么?等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 在ActiveX控件中,我用了一个线程,但是在网页上使用时,却无法触发连接点事件,请问是为什么?
描述:

要怎样加才可以顺利触发连接点事件呢?我必须得用多线程的,而且这个控件
在Activx control Test Container中运行得很正常
如果在网页上,我不用多线程,也是可以很正常的触发事件的
我的代码如下:
STDMETHODIMP CRTX::connectToServer()
{
if(m_isConnect)
return S_FALSE;
sockaddr_in cli;
cli.sin_addr.s_addr=inet_addr("66.1.33.55");
cli.sin_family=AF_INET;
cli.sin_port=htons(9020);
//创建socket
m_clisock=socket(AF_INET,SOCK_STREAM,0);
if(connect(m_clisock,(sockaddr *)&cli,sizeof(cli)) )
{
return S_FALSE;
}
m_isConnect = true;
DWORD i = 1;
this->ListenMessage1((void *) this);
HANDLE hThread=CreateThread(NULL,0,&ListenMessage,this,0,&i) ;
return S_OK;
}
DWORD WINAPI ListenMessage(void *p)
{
CRTX* rtx = (CRTX *)p;
SOCKET clisock;
clisock= rtx->m_clisock;
CTransforProtocol protocol;
int a= 1;
while (true){
a = protocol.receive(clisock);
rtx->m_clRecvMess.setReceiveProtocol(protocol);
a = rtx->m_clRecvMess.receive(clisock);
//  rtx->fire();   
rtx->Fire_OnClose();    
if(a < 0)
  break;      
}
rtx->m_isConnect = false;
if(a < 0)
rtx->Fire_OnClose();    
return 1;
}
Fire_Onclose() 是用ATL向导生成的一个事件函数
麻烦那位大虾给解释一下,或者给出一个解决方案
我的目的就是在接收到服务器发过来的消息时马上通知网页,然后网页中的VBScript作相应的处理


解决方案1:

你用工作线程发消息给主线程(初始化控件的那个),让主线程去调用连接点代理函数(FIRE_ON*)试试.

解决方案2:

create an invisible window

解决方案3:

现成里加AFX_MANAGE_STATE(AfxGetStaticModuleState())


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 在ActiveX控件中,我用了一个线程,但是在网页上使用时,却无法触发连接点事件,请问是为什么?
  • 在ActiveX控件中调用一个DLL,下面这个创建对象的过程放在控件的什么地方合适呢?
  • 在activex控件中获取容器(网页)的客户区大小,并且在客户区画图,而不是在窗体上画图的???

相关文章

  • 2017-06-04 急!activex控件中的CDIALOG的ONDESTROY事件不执行
  • 2017-06-04 我想问一下comdll和支持com功能的exe有什么区别?
  • 2017-06-05 ocx控件中的疑问
  • 2017-06-05 调用dll中的函数地址错误问题
  • 2017-06-04 从一个程序获得其他程序的WebBrowserControl里的数据时,如果数据正在更新,获得数据的语句将会死掉
  • 2017-06-05 rpc编程现在是个什么情况?
  • 2017-06-05 显式加载的DLL里的函数如何在程序里声明?
  • 2017-06-04 不安全方式使用activex,修改了后无效。求教
  • 2017-06-04 MFC方式的COM编程,嵌套类对象与父类对象的偏移问题
  • 2017-06-04 复制一COM换掉CLSID后出现奇怪问题!

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 请教matlab和vc的接口问题!
    • 单目视觉的单幅图像可以恢复物体的三维坐标或者三维重建吗
    • DLL中使用MediaPlayer控件的问题?
    • 有关文件上传问题FTP及HTTP)的讨论?在线
    • 大家有没有碰见这样的问题,作了个ASP组件,他的连接点事件是在那响应?
    • 启动打印机打印时,任务管理器中的打印进程是什么?还是没有?
    • 在网络连接开发中,我需要在服务器和客户端建立100个连接,请问怎样用多线程的方式来实现呢?!
    • 请教各位大虾,如何得到调用自己dll的程序所在的目录??
    • 挂接线程虚消息队列问题
    • 各位大虾:刻录机怎么操作?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有