毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> net技术 >> 正文

C#调用OCX,传递参数问题

更新时间:2013-3-11:  来源:毕业论文

C#调用OCX,传递参数问题
OCX是用VC写的
函数原型:
C/C++ code?1 LONG TH_Layout(VARIANT* rcBoundTop);

在工程中添加给OCX控件之后,编译器将该函数对应成这样:

C# code?1 public virtual int TH_Layout(ref object rcBoundTop);

其中VC中VARIANT类型的参数对应着int型的数组
请问,该怎样把 int[] rcBoundTop = new int[100];中的rcBoundTop传递给C#中的rcBoundTop参数?
  /// <summary>         /// 创建格式转换模块          ///          /// HRESULT __stdcall FMTCVT_Create(void **handle);          /// </summary>         /// <param name="handle">返回格式转换模块句柄</param>         /// <returns>返回状态码</returns>         [DllImport("HikFormatConvertDll.dll", EntryPoint = "FMTCVT_Create", CharSet = CharSet.Ansi,             CallingConvention = CallingConvention.StdCall)]         public static extern int FMTCVT_Create(ref IntPtr handle);           /// <summary>         /// 释放格式转换模块          ///          /// HRESULT __stdcall FMTCVT_Release(void *handle);         /// </summary>         /// <param name="handle">格式转换模块句柄</param>         /// <returns>返回状态码</returns>         [DllImport("HikFormatConvertDll.dll", EntryPoint = "FMTCVT_Release", CharSet = CharSet.Ansi,             CallingConvention = CallingConvention.StdCall)]         public static extern int FMTCVT_Release(IntPtr handle);

  public static IntPtr hFMCVT;    //格式转换模块句柄           ...           return HikFormatConvertDll.FMTCVT_Create(ref hFMCVT);           ...           HikFormatConvertDll.FMTCVT_Release(hFMCVT);

试试
int[] rcBoundTop = new int[100]
object rcBoundTop1= new System.Runtime.InteropServices.VariantWrapper(rcBoundTop);
TH_Layout(ref rcBoundTop1); 没尝试过这个,既然是自己封装成ref object,说明NET对这个有处理,用VariantWrapper封送。

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。