首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • COM组件问题,帮顶的有分.解决问题另给分
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ad4017
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 结帖率:
    发表于:2008-08-21 14:17:04 楼主
    VB.net调用COM多个事件出错

    在VB中引入COM组件,响应单个COM事件不出错,响应两个COM事件就出现"Exception from HRESULT: 0x80040202"错误,如何解决,请高手帮助.代码如下:
    Imports System.Diagnostics
    Imports System.Runtime.InteropServices
    Imports System.Text
    Imports System.IO

    Public Class Form1
        Private WithEvents ff As SService'(COM组件名称)
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            ff = New SService

        End Sub

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ff.SendMessage("你好")'调用COM组件方法
        End Sub

        Private Sub ff_OnMessageChange(ByVal ID As String, ByVal PMessage As String) Handles ff.OnMessageChange 'COM组件事件
            '未写处理代码
        End Sub

        Private Sub ff_OnStatusChanged(ByVal Status As Integer, ByVal ErrorStatus As Integer) Handles ff.OnStatusChanged 'COM组件另一事件
            MsgBox("事件执行!")
        End Sub

    End Class
    100  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ad4017
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 14:35:321楼 得分:0
    UP
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ad4017
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 15:39:252楼 得分:0
    UP
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Going1981
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 15:54:553楼 得分:0
    关注
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ejoe313
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 16:25:014楼 得分:0
    关注
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • taick
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 17:32:535楼 得分:0
    不是很清楚,因为不能测试你的COM组件.但肯定是COM组件的问题.
    可以把MsgBox("事件执行!")改成label.text=("事件执行!"试试看行不.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • llsus
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 08:50:416楼 得分:0
    你说的多个COM是同一个COM的多个实例还是多个不相干的COM?
    如果是多个不相干的COM,建议你单个测试都没问题再说
    如果是个1个COM的多个实例,那我们必须知道那个COM是怎么写的,否则能做出判断,因为很可能是COM本身的问题。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • llsus
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 08:51:207楼 得分:0
    引用 6 楼 llsus 的回复:
    你说的多个COM是同一个COM的多个实例还是多个不相干的COM?
    如果是多个不相干的COM,建议你单个测试都没问题再说
    如果是个1个COM的多个实例,那我们必须知道那个COM是怎么写的,否则不能做出判断,因为很可能是COM本身的问题。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yanlongwuhui
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 09:16:428楼 得分:0
    关注中
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • thunor
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 11:22:039楼 得分:0
    友情帮顶
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • chillystar
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 11:37:4310楼 得分:0
    同意5楼的建议,Msgbox等待回应时是会挂起当前线程的,会不会是在此时同时触发了其他事件而冲突?例如OnMessageChange和OnStatusChanged不在同一线程(事件线程当然不会相同,费话)而OnStatusChanged每次都是在同一线程处理,在一个中OnMessageChange被触发2次,每次都会同时触发到OnStatusChanged事件,第一个OnStatusChanged激活Msgbox时线程就被挂起,第二次就会导致失败
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • cowboy0000
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 15:46:4411楼 得分:0
    不懂帮顶..
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • cauhorse
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 15:51:1712楼 得分:0
    UP
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • LiShock
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 15:52:2613楼 得分:0
    严重关注
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ad4017
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 14:09:4914楼 得分:0
    调用一个COM组件,如果只写一个事件,程序是可以正常执行的,如果写两个事件就出错,应该是.NET与COM接口的问题
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ad4017
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 14:13:5115楼 得分:0
    如果删掉
    Private Sub ff_OnMessageChange(ByVal ID As String, ByVal PMessage As String) Handles ff.OnMessageChange 'COM组件事件
            '未写处理代码
        End Sub
    的代码就不出错,是不是.NET不支持COM多个事件接口
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved