• 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 > 调用OCX的问题,500分送上

调用OCX的问题,500分送上

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

佚名通过本文主要向大家介绍了js调用ocx,java调用ocx控件,c#调用ocx,java调用ocx,js调用ocx控件等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 调用OCX的问题,500分送上
描述:

3fPMComm.ocx是一个第三方提供的软件, 功能是打开串口,并发送和接受数据。  
使用vb,delphi , vc自带的ActivecX Control Test Container 调用该组件,都能达到预期效果, 
调用ConnectPM(1) , 用AccessPort(串口监控软件)可以发现:
每隔一秒左右,发送18字节长度的数据包。
但用vc写一个测试程序,调用ConnectPM(1) , 用AccessPort(串口监控软件)发现: 
没有发送数据包(也就是不发送18字节的数据包)。
弄3天了,都不知道为什么? 希望高手帮解决,提供解决方案, 或者修改代码,只要能解决,不胜感激,另500份送上
组件下载地址:
http://d.download.csdn.net/down/2234137/caitian6


解决方案1:

我用下面的方法在VC6上通过。


BOOL CTestOcx1Dlg::PreTranslateMessage(MSG* pMsg) 
{
// TODO: Add your specialized code here and/or call the base class
if (pMsg->message == WM_TIMER)
{
pMsg->hwnd = 0;
pMsg->wParam = 1;
pMsg->lParam = 0x10001dd0;
}
return CDialog::PreTranslateMessage(pMsg);
}

   这个问题我仔细分析了一下,首先VC6建立的那个dlg程序是单线程的,而3fPMComm.ocx是windowless的即没有窗口,那么这个控件又如何保证每个1秒就向串口写数据呢。既然是单线程的,那么最大的可能就是处理线程的WM_TIME消息,或者是用异步过程的回调函数了(即APC过程调用,这实际是内核创建了一个定时器,时间到了以后去调用用户线程中的回调函数,这必须使线程处于警告状态)。
    既然VC2005下能运行,我先在VC05下试验了一下,我在PreTranslateMessage(MSG* pMsg) 中处理WM_TIME消息,并设下断点,果然和我猜想的一致,它就是处理WM_TIME的,然后我跟踪它的消息路由,没有调用特殊的窗口函数,...最后直接通过
::TranslateMessage(pMsg);
::DispatchMessage(pMsg);
发送出去了,而究竟Dispatch给谁了,这个不要紧,最重要的是我发现了这个被发送的pMsg有一些特征,
这个message的hwnd是0,lParam = 0x10001dd0是个定数,我于是感到很高兴。赶紧在VC6下做了试验,
处理WM_TIME消息,然后观察pMsg的数据,lParam果然没变,修改之,然后通过反复试验,发现当lp=0x10001dd0时,lp=1时,才能往串口发数据,事情虽然解决了,但其中要去思考的东西太多了

解决方案2:

邮件已发,LZ换台机试试


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

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

  • 调用自己封装的OCX控件时出现的错误
  • ocx如何调用别的ocx
  • 怎样在网页中调用OCX控件中的方法????
  • 我做的ocx,网页无法调用
  • javascicpt调用ocx出现judown3未定义,为什么?已经数字签名过。
  • ocx调用问题,急!!!!在线等
  • OCX获取调用页面的域名或服务器IP
  • OCX调用帮忙改一下,谢谢
  • 写了个ocx,里面设了属性和方法
  • 用一个类调用ocx类里面的事件该怎么调用?

相关文章

  • 2017-06-05 救命啊?这样在多线程下捕获异常???
  • 2017-06-05 请各位来看看,这个该怎么办?谢了
  • 2017-06-05 多线程,临界区一个应用出现的问题!高手请指教!
  • 2017-06-05 200分如何将ChildFrame及其ChildView封装到DLL中,以便在MainFrame中,动态装载??200分
  • 2017-06-04 第三方控件咨询
  • 2017-06-05 那位大哥和高手能给简单讲讲dll基本用法,万分感谢!!!!!!
  • 2017-06-04 使用MSComm32ocx编写动态连接库的问题
  • 2017-06-05 服务如何获得系统关闭的消息,并做相应的处理?估计可以用hook实现。有没有可以注册相应的回调函数的api?
  • 2017-06-04 如何在web中编写activeX的事件响应代码
  • 2017-06-04 各位大侠,怎样写服务程序,需要那些基础知识,那里有资料下载,急切?

文章分类

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

最近更新的内容

    • 在VB中调用VC开发的API出现的问题
    • 你里有installShield下载
    • 关于activemovie控件
    • VC中关于句柄的问题
    • ActiveX属性改变了,为什么死活不去调用属性改变的那个响应函数?
    • CoCreateInstance返回REGDB_E_CLASSNOTREG
    • 动态连接库函数的参数是函数指针,我应该怎样调用呢??
    • 如何在vc中将文本文件的内容输出到excel图表显示!3x
    • daxia,如何用MFC写EXE组件,急急急!!!!
    • 为什么我在主线程里故意写的非法操作代码不能终止这个主线程所创建的线程?

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

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