在C#开发WPF桌面应用程序调用OCX控件

公司需要开发开发C#的WPF桌面应用程序演示软件,该软件调用高拍仪设备使用的的两个x86版本的OCX组件用于显示和控制高拍仪设备。

一、开发环境:

操作系统:
Windows 10 企业版操作系统

开发工具:
Microsoft Visual Studio Community 2019

开发工具配置C#、C++桌面应用程序开发环境。

二、将OCX组件生成WPF可以使用的ActiveX控件*
1、先注册 OCX 控件;(有的把 OCX 控件封装到 EXE 文件中,安装即可;
EloamThumbnail.ocx
EloamView.ocx

注册控件:脚本文件 “反注册控件.bat”
cd /d %~dp0
RegSvr32 .\EloamView.ocx
RegSvr32 .\EloamThumbnail.ocx

反注册控件:脚本文件 “双击注册.bat”
RegSvr32 /u .\EloamView.ocx
RegSvr32 /u .\EloamThumbnail.ocx

注意:注册于反注册控件都需要使用管理员身份运行。

2、打开 vs,新建一个 C#语言的Windows窗体应用(.NET Framework)程序.
在这里插入图片描述

目标框架使用:.NET Framework 4.5
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210309153005932.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JsdWVmaXJlMTEyNg==,size_16,color_FFFFFF,t_70

3、在左侧工具箱中添加OCX控件的 COM 组件。
在左侧的工具箱中选中“常规”选择项卡,点击鼠标右键,选择“选择项”菜单进入选择工具箱项界面。
在这里插入图片描述
选择COM组件栏目,点击右下角的浏览,选择要添加的OCX控件文件打开,可以看到控件已经被加载到工具箱并本选择。
在这里插入图片描述
点击确定添加这两个OCX控件到工具箱。
在这里插入图片描述

4、在工程应用窗体上添加两个控件,并修改好控件名称。

在这里插入图片描述
选中添加的控件,在右下角的属性窗口中修改控件名称,axEloamView1为axEloamView, 去掉开发工具自动添加的1,以免控件名称改变。
在这里插入图片描述
选中添加的控件,在右下角的属性窗口中修改控件名称,axEloamThumbnail1为axEloamThumbnai。在这里插入图片描述

5、修改工程的Debug和Release的生成目标平台为x86。
在开发工具的菜单栏中修改Release的运行平台Any CPU为 x86。
在右侧解决方案资源管理器窗口,选中工程项目,点击鼠标右键,选择属性菜单。
在这里插入图片描述
选择“生成”,在目标平台选项中选择x86平台。 下面的输出路径会自动修改为项目的bin\x86\Releaase\,表示输出的生成文件是该目录下。

6、生成目标控件的ActiveX控件dll。
先在 开发工具选择“生成” =》 清理解决方案。来清理已经生成的旧文件。
后选择“生成” =》“重新生成解决方案”,生成目标文件。
在这里插入图片描述

三、在WPF窗体应用就使用该OCX组件的ActiveX控件
1. 在开发工具中创建WPF应用()工程
在这里插入图片描述
在这里插入图片描述
选择框架为.NET Framework 4.5 环境。

2. 将上面生成的4个ActiveX控件dll添加引用到工程项目
选中右侧工程项目中的“引用”,右键"添加引用",选择右下角的浏览,将生成的4个dll添加到WPF工程引用中。
在这里插入图片描述

3. 添加引用:System.Windows.Forms,WindowsFormsIntegration。
选中右侧工程项目中的“引用”,右键"添加引用",选择左侧的程序集,选中System.Window.Forms ,点击确定就添加好了System.Windows.Forms引用。

由于.NET Framework 4.5框架没有加载WindowsFormsIntegration,所以需要另外添加。
选中右侧工程项目中的“引用”,右键"添加引用",选择右下角的浏览按钮,按照如下路径选择文件添加:
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.0\WindowsFormsIntegration.dll
在这里插入图片描述

4. .编辑布局界面
在这里插入图片描述
也可用使用代码添加控件的方式,但是使用中发现当添加两个OCX控件后,运行时会出现一个控件窗体显示在新窗体中,不在当前布局窗体。

5. .添加控制代码
在这里插入图片描述

6… 修改运行平台x86
在这里插入图片描述

7… 生成解决方案
在这里插入图片描述

8. 将依赖的dll添加到运行目录
在这里插入图片描述
9.运行工程
在这里插入图片描述

四、错误和注意事项

1.可执行程序依赖的dll调用失败:
在这里插入图片描述
原因:调用的dll没有成功引用到,需要将第三项的第8步拷贝两个dll到工程运行目录。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值