我从厂家获得一个OCX组件,其中有个函数A,调用它是会触发事件OnA(long s, short* v, long length)。
我在.net中调用此组件,名字为wap
这个OnA事件在.net中被包装成,wap_OnA(object sender, AxWPALMLib._DWPalmEvents_OnCaptureEvent e),
其中e内包含属性int型s,short型v,int型length
问题:
1、属性 v 在ocx组件是数据的指针,在.net中却变成了short型的。
2、函数A调用后会多次触发OnA事件并返回 s 的值,请问事件OnA怎么能获取连续的 s 值。在C++bulider中能执行通过,但是在.net中却不能获取值。
我在.net中调用此组件,名字为wap
这个OnA事件在.net中被包装成,wap_OnA(object sender, AxWPALMLib._DWPalmEvents_OnCaptureEvent e),
其中e内包含属性int型s,short型v,int型length
问题:
1、属性 v 在ocx组件是数据的指针,在.net中却变成了short型的。
2、函数A调用后会多次触发OnA事件并返回 s 的值,请问事件OnA怎么能获取连续的 s 值。在C++bulider中能执行通过,但是在.net中却不能获取值。
解决方案 »
- 双网卡的机子,一个大网,一个局域网。想在这台机器上访问另一台局域网的数据库服务器,该怎么办呢
- 关于SocketAsyncEventArgs类
- C# WinForm怎么做或画一个表格状的履历表格?
- C#怎么写接口
- 如何在不刷新的情况下更改ListView
- c#连接sql server的问题
- 第三方控件 DevExpress 怎么在 bandedGridView 某一列指定绑定为下拉列表 只要绑定能选择就好 求大神....
- C#中,扩展方法的第一个参数前的this的作用是什么?
- datagrid删除记录,出现“将 varchar 值 '409-56-7008' 转换为数据类型为 int 的列时发生语法错误。”错误提示,附源码?谢谢!
- 在.net里面怎么sourcesafe?
- 求一正则删除“=”号后的空格。
- 请教各位大侠sql2005中的一个查询语句该怎么写请大家帮忙~谢谢
代码如下:
//定义变量
private AxWPALMLib._DWPalmEvents_OnCaptureEvent ev = new AxWPALMLib._DWPalmEvents_OnCaptureEvent();
object a = new object();声明事件处理函数的时候这样:
wap_OnA(object sender, out AxWPALMLib._DWPalmEvents_OnCaptureEvent e)
调用时这样:
wap_OnA(a, out ev)执行完后用ev.s获取s的值。这样就可以了。
希望能帮到你。
这样行不通,因为OnCaptureEvent事件有三个参数
(2)wap_OnA(object sender, out AxWPALMLib._DWPalmEvents_OnCaptureEvent e)
参数e签名不能用out,提示“控制离开当前方法之前必须对out参数e赋值”
(3)wap_OnA(object sender, out AxWPALMLib._DWPalmEvents_OnCaptureEvent e)
事件内部怎么写。
wap_OnA(a, out ev)是循环调用吗?
我这方面经验不足,最好能写个完整的代码段,先谢谢你了。
OnA是事件,这跟C#的事件是一样的,用使用方去订阅!
使用关心的是对事件参数的处理,而不是调用这个事件处理方法!
所以,2楼基本没有涉及到问题核心!“属性 v 在ocx组件是数据的指针,在.net中却变成了short型的。”
lz,你把AxWPALMLib._DWPalmEvents_OnCaptureEvent在C++和C#定义结构体都贴出来,
好有针对性解决问题!还有,数据的指针,是指一个数组缓冲区吗?