2012-09-06 181 views
0

我創建了一個我在Chrome擴展中打包的NPAPI插件。我能夠在Windows 2003和Windows XP 64位版本的Chrome上成功安裝和使用擴展。NPAPI插件Windows DLL依賴關係

但是,當我在Windows 7(32位或64位)或Windows XP 32位上安裝插件時,我無法在Chrome中使用該擴展。鉻日誌顯示錯誤消息「無法初始化插件」。

我在我的所有環境中運行了依賴關係walker,它看起來像擴展不起作用的環境,它們都具有共同的警告消息「警告:至少有一個模塊導致未解析的導入延遲負載相關模塊中缺少導出功能。「 (該DLL的問題是SHLWAPI.DLL,IEFRAME.DLL和MPR.DLL),而擴展工作的環境沒有這個警告(儘管其中一個警告沒有找到延遲加載依賴模塊)。

這些DLL依賴關係是否應該在不同版本的Windows之間有所不同?解決它們的最好方法是什麼?或者,插件失敗很可能與這些DLL依賴關係無關?

回答

0

shlwapi和ieframe可能與您的問題無關;看到這些錯誤是一個常見問題。不確定關於mpr.dll,還沒有看到那個。

你可以嘗試一個FireBreath插件並比較依賴walker的結果,看看你是否可以發現你需要的東西firebreath沒有,因爲firebreath沒有外部DLL依賴關係。

2

通過使用「/ MT」編譯器標誌而不是默認的「/ MD」編譯您的二進制文件,重建您的項目而不依賴於運行時庫。

如果你依賴開源代碼,請確保使用「/ MT」標誌重建每個項目,否則你將永遠追逐這些運行時DLL問題。