2020-7-13 安装了 TWindowsMediaPlayer 的  ActiveX 控件,发引用不到路径。

delphi 安装一个 ActiveX 控件 - 蓝蓝的 - 博客园
https://www.cnblogs.com/rogge7/p/13259271.html

添加包时,把包命名为 WMPlayer

控件的安装路径 都是默认

安装后 产生的文件:

实战应用:

其它 B包用到这个控件,编译B包提示添加 这个控件的包引用进来,点击OK

编译不通过提示: [DCC Fatal Error] PKGInterface.dpk(47): E2202 Required package 'WMPlayer' not found 错误

找不到包:经多次折腾,发现有多个解决方法:

方法一:

因为这个控件只需要 这个控件的单元文件pas 或者dcu之类的,

本人做法在B包中直接引入 这个单元文件 C:\Users\yanfazhongxin\Documents\RAD Studio\9.0\Imports\WMPLib_TLB.pas 并且不用引入上面的 WMPlayer包进来。编译通过。

方法二,

经观察后:重新编译控件:设定控件包的DCP输出路径 为 .\$(Platform)\$(Config) ,build控件,在编译B包,编译通过。

方法三:

在开发环境中, tools --》 Options--》Library--》library path 添加多 $(BDSCOMMONDIR)\Dcp 添加 确认。编译B包,编译通过。

总结反思:

E2202 Required package 'WMPlayer' not found  所谓一般这样的错误,一般是控件安装时 输出的 bpl dcp 路径 无法被开发环境引用到所致。

方法一中是直接引用了这个类文件,通过。方法二中,改变了控件安装时编译产生的dcp文件到了一个系统默认路径,而这个路径刚好被XE2开发环境引用到。

方法三,是最好的正确方式。

路径引用:

一个是计算机的环境变量 配置,一个是开发环境的路径配置

所以我方法三中 添加了 $(BDSCOMMONDIR)\Dcp 之后,就相当于找到了这个路径 C:\Users\Public\Documents\RAD Studio\9.0\Dcp 下的 dcp文件。

奇怪:
这个路径应该开发环境安装的时候就应该有的,为什么我这里需要手动添加呢? 或许是安装开发环境后,被其它同事删除过。

标签: none

添加新评论