社区
控件
帖子详情
activex 事件
super_xxx
2008-11-27 08:55:13
我写了一个activex,调用方法可以,但是事件在一台机器上用vb可以有返回,另外一个机器上没有,没有返回的那个机器在tstcon32中有返回,请问谁碰到过这种问题,折磨我1周了。activex用c#写的,另外一个开发人员用vb6调用。
...全文
277
10
打赏
收藏
activex 事件
我写了一个activex,调用方法可以,但是事件在一台机器上用vb可以有返回,另外一个机器上没有,没有返回的那个机器在tstcon32中有返回,请问谁碰到过这种问题,折磨我1周了。activex用c#写的,另外一个开发人员用vb6调用。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
宋风流
2011-09-15
打赏
举报
回复
很可能是那台机器上没有framework.这个东西我做过,不过做ActiveX还是不要用C#。
super_xxx
2008-11-30
打赏
举报
回复
没人碰到?
现在还是人类
2008-11-28
打赏
举报
回复
要看问题出在哪?是C#还是VB?我只能估计是C#的代码问题,也不能具体回答你什么。
这样要人帮你瞎猜很难猜的,你应该整理好要问的东西好好问。
反正我从你题目所能了解到的就是“你有一个C#开发的组件,然后VB调用,最后是有问题了,然后叫别人猜你的问题在哪”。
你的控件主要要实现什么功能?什么时候哪里出现了问题?你的环境因素是怎样?你可以肯定哪里没问题?你估计哪里有问题?
你估计出问题的地方具体情况是怎样?......
呵呵,好像是我在问你问题。
super_xxx
2008-11-28
打赏
举报
回复
SupermanKing 程序是参照红马那个程序写的,只是多加了些事件响应,全部代码挺多的贴一部分吧
下面的代码是activex的声明中的一部分
[ComVisible(false)]
public delegate void DeviceError(string 设备名称);
[ComVisible(false)]
public delegate void DeviceRunning(string 设备名称);
#region 主体类接口
[Guid("FF1359CB-A77A-4aeb-9840-1FF989CF02CF"), InterfaceType(ComInterfaceType.InterfaceIsDual)]
public interface Ir_Interface
{
void FireDevComUsed(string param); //4.3 设备串口被占用
void FireDeviceRuned(string param); //4.6 设备已运行
}
#endregion
#region 这里添加事件
[Guid("A67FF4CD-44A0-404f-9FFA-319E88958602"), InterfaceType(ComInterfaceType.InterfaceIsDual)]
public interface IDeviceRunEvents
{
[DispIdAttribute(4)]
void DevComUsed(string DeviceName);
[DispIdAttribute(6)]
void IdentifyDevUsed(string DeviceName);
}
#endregion
#region 主体类
[Guid("2AD88D09-C8FA-4e63-9040-A300226DB381")] //guid.
[ClassInterface(ClassInterfaceType.AutoDispatch)] //必须的,否则无法调用
[ComSourceInterfaces(typeof(IDeviceRunEvents))]
[ProgId("Machine.DeviceRun")] //控件名
public class EventObj :Ir_Interface
{
#region 事件定义
#region 设备状态事件
/// <summary> 4.3 设备串口被占用
/// 传动串口被占用
/// </summary>
public event DeviceError DevComUsed;
/// <summary> 4.6 设备已运行
/// 发卡设备已运行
/// </summary>
#endregion
#endregion
#region 事件体,执行com事件
public void FireDevComUsed(string param)
{
if (DevComUsed != null)
DevComUsed(param);
}
public void FireDeviceRuned(string DeviceName)
{
if (DeviceRuned != null)
DeviceRuned(DeviceName);
}
#endregion
}
#endregion
#endregion
[GuidAttribute("F321BAC9-5019-4c6f-BADF-8D104A499870")]
[InterfaceTypeAttribute(ComInterfaceType.InterfaceIsDual)]
public interface ISharpCOMInterface
{
EventObj ObjDevComUsed
{
get;
set;
}
EventObj ObjDeviceRuned
{
get;
set;
}
void SetConfig();
void SetConfig(string File);
void Init();
void next()
}
[GuidAttribute("03018F99-263B-417e-94F3-F367471F6679"),
InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIDispatch)]
public interface ICSharpCOMEvents
{
[DispIdAttribute(3)]
void DevComUsed(string DeviceName);
[DispIdAttribute(6)]
void DeviceRuned(string DeviceName);
}
[Guid("7F8DF713-8277-478c-8288-12E96DFEBC69")]
[ClassInterface(ClassInterfaceType.None )]
[ComSourceInterfacesAttribute(typeof(Machine.ICSharpCOMEvents))]
[ProgIdAttribute("Machine.DeviceRun_2")] //控件名
public partial class DeviceRun_2 : UserControl, ISharpCOMInterface
{
#region .net事件定义
#region 设备状态事件
[Category("Action")]
/// <summary> 4.3 设备串口被占用
/// 传动串口被占用
/// </summary>
public event DeviceError DevComUsed;
[Category("Action")]
/// <summary> 4.6 设备已运行
/// 发卡设备已运行
/// </summary>
public event DeviceRunning DeviceRuned;
#endregion
#endregion
}
}
//下面的代码是执行过程中的一部分,也就是当执行到这里时调用上层程序中的事件函数(见下面vb代码)
if(DeviceRuned !=null )
DeviceRuned(DeviceName); //通知设备开始运行
//这里是vb代码
Private Sub DeviceRun_21_DeviceRuned(ByVal DeviceName As String)
'已经开始发行流程事件通知,
msgbox "运行了"
End Sub
jxsqs
2008-11-28
打赏
举报
回复
up
android2008
2008-11-28
打赏
举报
回复
up
SYSSZ
2008-11-28
打赏
举报
回复
如果方便的话,请把那个activex放在网上,让大家都来测试一下,也许能发现问题,瞎猜咋行?
韧恒
2008-11-28
打赏
举报
回复
楼上的太有才了,讲的句句是真理! ^_^
super_xxx
2008-11-27
打赏
举报
回复
编译过了也不行
king06
2008-11-27
打赏
举报
回复
在另一个机器上编译一下
ActiveX
异步回调JavaScript(通过
事件
方式)
本文介绍了一种通过线程同步解决JavaScript与
ActiveX
控件间
事件
交互问题的方法。通过在
ActiveX
控件中实现Invoke函数和
事件
回调,再利用PostMessage进行线程同步,最终实现了JavaScript对控件
事件
的成功响应。
JavaScript如何触发
ActiveX
控件的
事件
,并得到
事件
中的参数
本文介绍了如何在JavaScript中触发
ActiveX
控件的
事件
,并获取
事件
参数。通过实例展示了在ASP.NET前端如何设置
事件
监听,并通过调试找到正确参数值,从而成功获取到坐标信息。
ActiveX
控件的属性、
事件
和方法
本文深入探讨了
ActiveX
控件的核心概念,包括其属性、
事件
和方法。通过实例解析,展示了如何在开发环境中使用MFC创建和操作
ActiveX
控件,同时讨论了它们在服务程序(service)、可执行文件(exe)以及动态链接库(dll)中的应用。了解这些基础知识对于提升C++开发者在组件开发中的技能至关重要。
网页调用
ActiveX
并且响应
事件
本文介绍了一种在网页中使用
ActiveX
控件的方法,并演示了如何通过JavaScript调用
ActiveX
的StartPreview方法来播放视频流及如何监听DblClick
事件
。
wxWidgets:使用wx
ActiveX
Event类处理
ActiveX
事件
本文介绍了如何使用wxWidgets的wx
ActiveX
Event类在C++中处理
ActiveX
事件
。首先,创建
ActiveX
控件,然后定义
事件
处理函数,最后发送
ActiveX
事件
来触发处理。示例代码展示了如何加载
ActiveX
控件,绑定
事件
处理函数以及发送
事件
。
控件
1,453
社区成员
41,351
社区内容
发帖
与我相关
我的任务
控件
VB 控件
复制链接
扫一扫
分享
社区描述
VB 控件
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章