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:UsersyanfazhongxinDocumentsRAD Studio9.0ImportsWMPLib_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:UsersPublicDocumentsRAD Studio9.0Dcp 下的 dcp文件。
奇怪:这个路径应该开发环境安装的时候就应该有的,为什么我这里需要手动添加呢? 或许是安装开发环境后,被其它同事删除过。