近日遇到问题,给客户安装软件涉及视频等音影播放,安装软件启动过程遇到这样问题:

分析报错原因:

没有注册类别 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG)

查找原因: Interop.WMPLib.dll  AxInterop.WMPLib.dll

程序内含private AxAPlayer3Lib.AxPlayer axPlayer;

最初出现问题分析思路:1.先注册两个动态库,注册失败:

两个动态库是不能直接注册。

(背景:之前软件刚接手问过上一任,软件内含迅雷看看的转码播放。

咨询结果:视频转码的过程不需要注册,视频正常播放需要视频组件注册。

经验:还有之前在很多的客户机安装上都是这样,不注册迅雷看看组件,软件都正常打开,但是视频不能播放。)

2.在客户机上出现了以上的问题,突然安装的软件报错,出现以上错误,当时认为缺少.Net组件或者某个库文件。

通过下载微软运行库文件,安装解决了,当时肯定了确实视屏播放方面的组件。

3.又有一台机器安装64位系统,打开软件报错,安装上一次的微软的运行库文件,不好使;下载新的64位的微软运行库同样不好使。

思考良久也不知道怎样解决了。

4.今天突然想到把迅雷看看组件注册一下,软件正常使用。

总结一下上边的各种状况:

1.从开始下手 AxAPlayer3Lib.AxPlayer:

APlayer 媒体播放引擎是迅雷公司从 2009 年开始开发的音视频媒体文件播放内核。
迅雷看看播放器就是使用它作为播放内核的,目前迅雷看看播放器在PC播放器市场占有率排第一。
APlayer 有如下特征:
◆ APlayer 是 Windows 平台的播放内核
◆ 基于封闭式 DirectShow 架构 (不受Windows系统解码环境干扰)
........此处省略N多字。
2.之前在很多电脑上安装过迅雷看看或者其他播放器,所以组件不需要注册就就能正常播放。
3.新装电脑,没有相关的MediaPlay方面的组件,必然不能正常启动软件。
4.结论: 组件的正常播放需要安装需要的组件,整个软件的启动在与是否含有MediaPlay方面的底层组件。
           再次遇到这样的问题,可以直接注册Aplay动态库 或者安装迅雷看看(或者其他的播放器)。
其它方面知识:
1.动态库注册:(在资料查阅中获得了两个新知识,以下copy来的)
   

动态库:将AxInterop.WMPLib.dll复制到C:\Windows\System32目录下。
    系统是64位的请将32位的dll文件复制到C:\Windows\SysWOW64目录
    打开"开始-运行-输入regsvr32 AxInterop.WMPLib.dll",回车即可解决。

下面的代码保存为“注册.bat“,放到dll文件同级目录(只要在同一个文件夹里面有这两个文件即可),双击注册.bat,就会自动完成AxInterop.WMPLib.dll注册(win98不支持)。

代码如下:
@echo 开始注册
copy AxInterop.WMPLib.dll %windir%\system32\
regsvr32 %windir%\system32\AxInterop.WMPLib.dll /s
@echo AxInterop.WMPLib.dll注册成功
@pause
2.C#动态库免注册调用:
生成免注册COM 
用Visual Studio.NET 2010,生成免注册程序轻而易举,然而,开发时却必须要先注册COM+控件。尽管可以无须注册COM控件来运行一个程序,但在开发免注册程序的电脑上,却必须要先注册COM组件,所以目前来说,免注册COM仅限于运行时。(也就是说,开发的时候也是需要安装Aplayer的SDK的):
在VS中使用的步骤是:
1、在解决方案浏览器中,打开引用文件夹,当添加COM+(ActiveX)控件到程序窗体时(工具箱-右击-选择项目-COM+)
2、把添加到工具箱的COM+控件拖到窗体,会自动完成引用
3、点击选中引用的控件,在属性面板,把“独立”设置为:true
有了创建后的清单文件,只需简单地复制debug目录(可用COPY)到任何电脑上,就可以在没有注册表项的情况下使用该控件,现在,发布一个程序简单得就如复制粘贴一般简单了。

通过上面的方法,用C#制作的桌面版Aplayer应用程序,打包发布,安装程序就不用考虑aplayer的注册问题,只需要按照正常的打包方案发布应用就行了,也可以作为纯绿色的,直接拷贝debug目录里的文件到其他电脑上,也是能够运行的!

3. VS2010中出现无法嵌入互操作类型(感兴趣看看)

转载于:https://www.cnblogs.com/sunrunzhi/p/4959420.html

C# DLL文件注册问题(涉及AxInterop.WMPLib.dll等)相关推荐

  1. 关于安装Wind金融终端后,启动QT后频繁跳出WDF.dll文件注册成功窗口的问题

    . 安装Wind金融终端后,启动QT后频繁跳出WDF.dll文件注册成功窗口的信息. 经过排查后发现,主要问题出在系统环境变量上. 安装了wind金融终端后,用户系统环境变量PATH里多了两个wind ...

  2. 电脑丢失的dll文件怎么一键修复?修复dll方法分享

    电脑丢失的dll文件怎么一键修复?电脑状况常常让人遇到各种问题,其中"DLL文件丢失"是最常见的问题之一.在这篇文章中,我们会介绍为何会出现DLL文件丢失的问题,以及提供一种简单. ...

  3. DLL文件是怎么产生的,DLL文件是什么,DLL文件有什么用

    文章目录 一.DLL文件是怎么产生的 二.DLL文件是什么 三.DLL文件有什么用 一.DLL文件是怎么产生的 许多应用程序被分割成一些相对独立的动态链接库,放置于系统中,就产生了DLL文件. 二.D ...

  4. java 项目加载dll文件,Java动态调用链接库dll文件

    Java动态调用链接库dll文件 Java动态调用链接库dll文件 因为项目需要,用到了java调用dll文件中的方法.写成dll文件大多是用C语言弄成的,对于我这个纯粹干java的人员来说,着实让我 ...

  5. .OCX、.dll文件注册命令Regsvr32的使用

    1.打开文件,打开需要注册的OCX文件或dll文件, 2.然后根据需要进行OCX文件或DLL文件的注册和反注册 DLL.OCX注册方法--文件Regsvr32用法及情况介绍 使用过activex的人都 ...

  6. 无法启动此程序因为计算机丢失dtlui,电脑缺少dll文件_电脑开机总是出来DLL文件丢失,...

    最佳答案 如果您的电脑开机出现"加载C:/WIND/SYSTEM32.UKWIEG96.DLL时出错"之类的加载dll文件出错或提示dll文件丢失,但又可以正常进入系统,那么这篇文 ...

  7. 辐射3游戏登录是提示计算机丢失xlive.dll文件,辐射3提示丢失xlive.dll

    很多小伙伴在玩辐射3的时候,突然系统提示无法启动此程序,因为计算机中丢失xlive.dll.尝试重新安装此程序以解决此问题,这是怎么一回事呢?因为该文件的缺失或者没有注册导致的,具体的解决方法下面一起 ...

  8. java jna调用dll文件_关于java jna调用dll的问题

    public interface User32 extends StdCallLibrary { User32 INSTANCE = (User32)Native.loadLibrary(" ...

  9. 计算机中丢失cg,【计算机中丢失dll文件】计算机丢失dll文件_计算机中丢失cg dll-win7之家...

    2017-05-16 00:00:00 浏览量:489 wpcap.dll是一个高层的强大捕获程序库,与Unix下的libpcap兼容.它独立于下层的网络硬件和操作系统文件下载,解决找不到wpcap. ...

最新文章

  1. 蒙特卡洛粒子滤波定位算法_粒子滤波——来自哈佛的详细的粒子滤波器教程【1】...
  2. CSS3关于过渡效果的问题
  3. 为什么程序员都不喜欢使用switch,而是大量的 if……else if ?
  4. VTK:隐式布尔值用法实战
  5. Redis的Linux单机版安装
  6. Java 10及更高版本的思考
  7. c++用牛顿法开多次根_望远镜的历史之三:大神出世,改变望远镜历史的竟然是牛顿...
  8. java怎么让1的数据2可以拥有,【如何让代码变“高级”(二)】-这样操作值得一波666(Java Stream)(这么有趣)...
  9. 递归调用层数太多_VBA学习笔记46:组合之递归算法(没写后补)
  10. UML---(1)一张图看懂UML 类图
  11. 处理键盘上升盖住文本框问题
  12. jcr多久更新一次_2020年期刊影响因子正式发布,几家欢喜几家愁?!
  13. SaaS-HRM(2)数据库设计与前端框架(企业管理前后台)
  14. JAVA我的世界怎么弄TNT大陆_《我的世界》爷爷的遗言:TNT大陆地图存档
  15. AMD OpenCL Programming Guide - OpenCL Architecture
  16. PS 抠图几种典型方法
  17. jbox弹窗_jbox很好的弹出层 很好的弹出层 - 下载 - 搜珍网
  18. mysql 64 免安装_MYSQL 免安装版(windows 7/64)
  19. 计算机硬盘管理 3t,为什么劝你3T硬盘也别分区?我来治好你的强迫症
  20. Hyperledger Explorer 区块链浏览器

热门文章

  1. storm示例之DRPC
  2. 一个简单的方式打印数组中的所有值
  3. 如何在excel中取消合并完单元格后自动把内容填充给其每个取消后的单元格
  4. 服务器虚拟网卡有mac地址吗,如何动态添加MAC地址可定义的虚拟网卡?
  5. 如何利用python对股票的走势进行一个判断?
  6. 【2016】一月份英语学习总结
  7. 【linux iic子系统】i2c设备的添加方法(四)
  8. Intellij IDEA 默认打开上次项目设置
  9. 【前端】vue运行环境和编辑器VScode安装
  10. codeforces613B - Skills 金中市队儿童节常数赛