关于ocx控件的跨语言使用
2016-03-24 14:46
162 查看
拿到OCX控件后,大概的流程就是对OCX控件进行系统注册,也就是将OCX控件写入到注册表中。前段时间有个项目要求提供c#版本的进度条控件。而控件组仅仅有ocx版本控件。所以,根据客户需求将ocx版本的时间进度条控件转换成c#自定义控件。
首先,要拿到ocx控件,之后将ocx控件注册到系统中,可以采用命令行的形式进行。
首先切换到ocx控件相应目录,然后执行regsvr2进行注册。Win7系统下需要管理员身份运行。如果卸载注册,执行regsvr2 /u +控件名称即可。当然也可以采用编写批处理文件的方式注册控件。注册成功后,可以在注册表中搜索到相应控件
系统注册步骤较简单,之后就是对ocx控件的加载。首先打开vs2008,新建自定义控件工程,之后在工具栏右键选择“选择项”弹出如下对话框,点击com组件选项卡,点击浏览
找到ocx控件的路径,并加载控件,此时在c#工具箱中即可看到相应的ocx控件。
此时只需将控件拖入到界面中即可。此时,会在bin目录生成两个文件
对于ocx控件和c#自定义控件的区别在于ocx控件需要系统注册,而c#自定义控件对于C#开发者来说,只需要将控件拖入界面即可。C#开发人员不会关心其是否需要注册。所以一般建议在封装c#自定义控件时将ocx控件加载函数中,调用ocx控件提供的注册函数进行动态注册,关闭时销毁。注册和取消注册时所用的接口函数为
当然在注册前一般要判断此ocx是否已经注册过了,采用如下函数进行
其中的classid,对于我来说是通过ocx的源代码中获取到的,在没有ocx源代码的情况下可以在注册表中搜索ocx控件,即可找到相应classid,通过代码可以判断是否已经注册。
首先,要拿到ocx控件,之后将ocx控件注册到系统中,可以采用命令行的形式进行。
首先切换到ocx控件相应目录,然后执行regsvr2进行注册。Win7系统下需要管理员身份运行。如果卸载注册,执行regsvr2 /u +控件名称即可。当然也可以采用编写批处理文件的方式注册控件。注册成功后,可以在注册表中搜索到相应控件
系统注册步骤较简单,之后就是对ocx控件的加载。首先打开vs2008,新建自定义控件工程,之后在工具栏右键选择“选择项”弹出如下对话框,点击com组件选项卡,点击浏览
找到ocx控件的路径,并加载控件,此时在c#工具箱中即可看到相应的ocx控件。
此时只需将控件拖入到界面中即可。此时,会在bin目录生成两个文件
对于ocx控件和c#自定义控件的区别在于ocx控件需要系统注册,而c#自定义控件对于C#开发者来说,只需要将控件拖入界面即可。C#开发人员不会关心其是否需要注册。所以一般建议在封装c#自定义控件时将ocx控件加载函数中,调用ocx控件提供的注册函数进行动态注册,关闭时销毁。注册和取消注册时所用的接口函数为
当然在注册前一般要判断此ocx是否已经注册过了,采用如下函数进行
其中的classid,对于我来说是通过ocx的源代码中获取到的,在没有ocx源代码的情况下可以在注册表中搜索ocx控件,即可找到相应classid,通过代码可以判断是否已经注册。
相关文章推荐
- Studio 从入门到精通 (一)
- socket笔记
- 关于Activity无重写方法--菜单项onCreateOptionsMenu
- ArtifactdescriptorException: failed to read artifact for xxxxxx.
- (转)分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)
- 一个完整的创建用户,创建表空间,授权建表过程
- spring 配置多数据源
- WebDriver与文件系统
- MYSQL数据导入导出
- 数据库面试题(更新中。。。)
- Cppcheck 1.54 C/C++静态代码分析工具
- Android 自定义ViewGroup 实战篇 -> 实现FlowLayout
- Latex编辑技巧杂锦
- Java成员内部类
- Unity3D 与android交互流程步骤
- oracle性能优化(一)
- MYSQL数据库管理之权限管理
- C++用钩子模仿按键精灵录制键盘鼠标的功能
- Android5.0以上使用MediaProjection截图和录屏
- 详解Android应用中ListView列表选项栏的编写方法