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文件。
奇怪:這個路徑應該開發環境安裝的時候就應該有的,為什么我這里需要手動添加呢? 或許是安裝開發環境后,被其它同事刪除過。