• 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 > ATL控件错误,求救求救,小女子多谢了!

ATL控件错误,求救求救,小女子多谢了!

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

佚名通过本文主要向大家介绍了atl控件,atl,atl71.dll,atl100.dll下载,atl71.dll修复等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: ATL控件错误,求救求救,小女子多谢了!
描述:


ATL复合控件编写了一个串口控件MyComm,对话框中放置了微软的MSComm串口控件,对话框初始化时调用GetDlgControl(IDC_COMM,IID_IMSComm,(void**)&m_comm)得到了MSComm接口,编程过程中遇到了两个问题。
(1)生成了MSComm的消息响应函数OnComm,但在串口有返回数据时,该函数没有任何响应,可恨!
(2)在网页中调用MyComm,反复调用其他函数没错,当调用Read函数次数多的时候,尤其在刷新页面时,IE就会死掉,说不上什么时候会死,但次数多了最终肯定会死,应该是内存有泄漏,但找了好多天也没找出来。
众位大虾指点指点,多谢。
Read函数是从串口读入byte串,然后转换为字符串输出,例如{12,126,9,26,8}转换为"12,126,9,26,8",代码如下:
STDMETHODIMP CMyComm::Read(BSTR *result)
{
  char sNum[3]={'0','0','0'};
  CComBSTR bstrNum="";
  byte bNum=0;
  short inBufferCount=0;
  VARIANT va;
  ::VariantInit(&va);
  va.vt=VT_ARRAY|VT_UI1;
  m_comm->get_InBufferCount(&inBufferCount);          //接收的byte串长度(m_comm为微软串口控件)
  SAFEARRAY * psa;
  SAFEARRAYBOUND rgsabound[1];
  rgsabound[0].lLbound = 0; 
  rgsabound[0].cElements = inBufferCount; 
  psa = SafeArrayCreate(VT_UI1,1,rgsabound);
  if(inBufferCount!=0){
    m_comm->get_Input(&va);                           //从串口接收byte串
    psa = va.parray;
    for(long len=0;len<inBufferCount;len++){
      ::SafeArrayGetElement(psa,&len,&bNum);          //取串口byte到bNum
      ::itoa(bNum,sNum,10);                         
      bstrNum.Append(sNum);                             
      if(len!=inBufferCount-1){                       //数字之间加,号
bstrNum.Append(",");
      }                      
    }  
    bstrNum.CopyTo(result);                           //返回result
    ::VariantClear(&va);
  }
  
  ::SafeArrayDestroy(psa);
  bstrNum.Empty();
  
  return S_OK;
}


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

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

  • 关于cabarc打包atl控件的问题,郁闷中~~~
  • ATL控件2问
  • 关于ATL做复合控件的问题
  • 大家一般都怎么打包Atl开发的ActiveX控件?
  • 使用ATL编写控件的接收器时,怎样在事件处理方法中得到事件源接口?
  • 请教,ATL写的ActiveX控件在IE中加载时接口的调用顺序
  • 在一个atl的复合控件项目中,如果调用其它ocx控件的方法??
  • 如何使用ATL编写的COM控件来播放AVI文件,需要在IE上使用的
  • 如何得到用ATL作的控件的窗口句柄,试了几个都无效,怎么回事?
  • 想用ATL做个控件,但这是怎么回事?

相关文章

  • 2017-06-05 各位高手,进来吧,如何终止任一指定进程?还可以加分。
  • 2017-06-04 如何初始化ocx控件的大小?
  • 2017-06-05 VARIANT这是什么类型的?
  • 2017-06-04 在哪加载DLL?
  • 2017-06-04 solidworks中SelectByID函数的使用
  • 2017-06-04 请高手讲解一下com中的包容与聚合
  • 2017-06-05 高手请帮忙啊!!!
  • 2017-06-05 线程同步的问题,急阿!
  • 2017-06-04 关于建立COM实例的问题
  • 2017-06-04 解说COM/COM+最好的书籍?

文章分类

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

最近更新的内容

    • 在控件中引用CEdit控件出现的奇怪问题:不能使用方向键和BackSpace键
    • 一个关于rgs文件的问题,求指教
    • activex从html中获取参数的问题。
    • 能不能动态的加载dll中的类?
    • 普通工程如何转化成ATL工程
    • 初学COM,请高手推荐一些入门的书籍或者网站资料谢谢!!
    • 如何实现线程同步
    • 如何知道一个WindowsDLL中包含的函数名称、个数和函数参数
    • 我想系统的学习COM,高手请指点?
    • COM服务器里开多线程的问题

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

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