VC写的OCX,其中一个函数的参数为long型,是回调函数的地址
C#中调用OCX时,将long型参数转换成了int型
现在C#调用这个OCX,该怎么吧C#中的回调函数的地址传递给这个int参数呢?C# OCX回调函数
C#中调用OCX时,将long型参数转换成了int型
现在C#调用这个OCX,该怎么吧C#中的回调函数的地址传递给这个int参数呢?C# OCX回调函数
解决方案 »
- winform
- 请教一个关于文件流的问题
- C#如何访问局域网内另一台计算机的数据库?
- 直接通过共享享文件执行局域网机器上的C#程序问题
- 想问HttpWebRequest类中CookieContainer属性中的Cookie与HttpWebResponse类中的Cookies属性中的Cookie有什么区别
- C# 中DataGrid固定第一列
- 请问程序可以自己探知自己是不是clickonce吗?
- C#调用C++ 函数分配内存
- DateTimePicker默认修改为月份
- 送分题!大家快来!
- c# listview控件,每一行的checkbox的问题
- WinForm中contextMenuStrip控件的单击事件中,怎么获得contextMenuStript的所属控件?
这个是调用DLL处理回调函数的方法,但是调用OCX该怎么处理呢?
C#已经将OCX里里面函数的long参数对应成了int型,这个int参数应该是个地址
用InvokeMember调用,
参数定义成object[],传你的long型试试。
//回调函数形式
public static int ProgressStart() //开始
{
MessageBox.Show("开始"); return 1;
}
public delegate int ProgressStart_CallBack();
static ProgressStart_CallBack Start_CallBack = new ProgressStart_CallBack(ProgressStart);
IntPtr ProgressStart_Ptr = Marshal.GetFunctionPointerForDelegate(Start_CallBack);
/***
YourFuc(ProgressStart_Ptr.ToInt32()); //你的调用代码