社区
控件
帖子详情
activex 事件
super_xxx
2008-11-27 08:55:13
我写了一个activex,调用方法可以,但是事件在一台机器上用vb可以有返回,另外一个机器上没有,没有返回的那个机器在tstcon32中有返回,请问谁碰到过这种问题,折磨我1周了。activex用c#写的,另外一个开发人员用vb6调用。
...全文
232
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
事件
参数传输数组
ActiveX
事件
参数传输字符串、数组、字符串数组。VS2013调试通过。 如果 C#测试程序 打开有问题,请注意: 1.首先 编译、注册
activex
控件 2.重新手动引入 该控件到 窗体中 控件上按下鼠标左键、右键、键盘出发测试...
实现
ActiveX
控件的
事件
实现
ActiveX
控件的
事件
实现
ActiveX
控件的
事件
实现
ActiveX
控件的
事件
实现
ActiveX
控件的
事件
ActiveX
反射集成,方法
事件
调用.rar
ActiveX
控件,反射集成。方法调用、监听
事件
。带JS监听
事件
脚本。
如何使用VC++ 2005 给
ActiveX
控件添加方法,属性,
事件
如何使用VC++ 2005 给
ActiveX
控件添加方法,属性,
事件
如何使用VC++ 2005 给
ActiveX
控件添加方法,属性,
事件
如何使用VC++ 2005 给
ActiveX
控件添加方法,属性,
事件
如何使用VC++ 2005 给
ActiveX
控件添加方法,属性,
事件
如何...
VC2010给
ActiveX
添加
事件
VC2010如何给
ActiveX
添加
事件
方法
控件
1,451
社区成员
41,355
社区内容
发帖
与我相关
我的任务
控件
VB 控件
复制链接
扫一扫
分享
社区描述
VB 控件
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章