社区
控件
帖子详情
activex 事件
super_xxx
2008-11-27 08:55:13
我写了一个activex,调用方法可以,但是事件在一台机器上用vb可以有返回,另外一个机器上没有,没有返回的那个机器在tstcon32中有返回,请问谁碰到过这种问题,折磨我1周了。activex用c#写的,另外一个开发人员用vb6调用。
...全文
242
10
打赏
收藏
activex 事件
我写了一个activex,调用方法可以,但是事件在一台机器上用vb可以有返回,另外一个机器上没有,没有返回的那个机器在tstcon32中有返回,请问谁碰到过这种问题,折磨我1周了。activex用c#写的,另外一个开发人员用vb6调用。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
事件
参数传输数组
ActiveX
事件
参数传输字符串、数组、字符串数组。VS2013调试通过。 如果 C#测试程序 打开有问题,请注意: 1.首先 编译、注册
activex
控件 2.重新手动引入 该控件到 窗体中 控件上按下鼠标左键、右键、键盘出发测试...
实现
ActiveX
控件的
事件
本篇文章将深入探讨如何实现
ActiveX
控件的
事件
处理。 首先,理解
ActiveX
控件的基本概念是必要的。
ActiveX
控件是一种基于COM(Component Object Model)的二进制模块,它可以是DLL或OCX文件。这些控件可以包含用户...
VC2010给
ActiveX
添加
事件
在Microsoft Visual C++ ...总的来说,VC2010虽然改变了类向导的操作方式,但添加
ActiveX
事件
的过程仍然直观且易于理解。通过以上步骤,开发者可以轻松地为
ActiveX
控件扩展
事件
功能,增强其与宿主应用程序的交互性。
在 PowerBuilder窗体中使用
ActiveX
控件
ActiveX
控件通常有自己的
事件
,这些
事件
可以通过 PowerBuilder 的
事件
处理程序进行响应。在 PowerBuilder 的“
事件
”窗口中,你可以为
ActiveX
控件的特定
事件
编写代码。 例如,如果
ActiveX
控件有一个名为 `...
ActiveX
反射集成,方法
事件
调用.rar
本文将深入探讨"
ActiveX
反射集成"、"方法
事件
调用"以及相关的"
事件
监听"。 首先,
ActiveX
反射集成涉及到程序在运行时动态地获取和操作
ActiveX
控件的方法和属性。反射是一种强大的编程技术,它允许程序在运行时检查...
控件
1,453
社区成员
41,355
社区内容
发帖
与我相关
我的任务
控件
VB 控件
复制链接
扫一扫
分享
社区描述
VB 控件
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章