2012-03-12 230 views

回答

5

UnRAR.dll不是.NET組件,因此它不能被用作一個項目引用。

這是一個原生的DLL,所以你必須使用P/Invoke來訪問它的方法或寫它周圍的C++/CLI包裝。

有在this MSDN forum thread一些示例代碼,應該提供一個體面的起點和顯示必要的方法。

Blue Mirror CD/DVD Indexer項目中似乎還包含一個相當完整的wrapper


還應該指出,SevenZipSharp包括支持這個開箱即用。我自己並沒有使用它,但可能值得一試。

+0

您可能想考慮解釋他如何將DLL導入到他的項目中。 – evasilchenko 2012-03-12 21:10:33

+0

@DeviantSeev - 添加了其他人用來訪問UnRAR.dll的一些代碼的鏈接。 – 2012-03-12 21:13:55

+0

@ M.Babcock謝謝我檢查了提到的鏈接同樣的包裝包含在同一作者的示例項目中,但是由Mr.Steve提到的「unrar.dll」應該在BIN \ DEBUG文件夾中,我只是複製了.dll,但如果我編譯並從BIN \ DEBUG運行.exe其工作正常,但如果我調試它的拋出錯誤「嘗試運行項目時出錯不能加載文件或程序集'unrar'或其依賴項之一。該模塊應包含一個安全的清單」 ...如果我從BIN \ DEBUG刪除.dll項目在調試模式下運行拋出相同的錯誤,因爲我附上圖片 – alhashmiya 2012-03-12 22:18:14

2

你正在談論使用

[DllImport("unrar.dll")] 

訪問庫中的函數的樣本。測試項目運行時

這個DLL文件應該是可見的。
因此,您應該將其複製到BIN \ DEBUG文件夾或您項目運行的 文件夾中。

+0

我剛剛複製.dll,但如果我編譯並從BIN \ DEBUG運行.exe其工作正常,但如果我調試其拋出錯誤「嘗試運行項目時出錯不能加載文件或程序集'unrar'或其依賴項之一。該模塊應包含一個安全的清單」...如果我從BIN中刪除.dll \調試在d中運行的項目ebug模式拋出同樣的錯誤,因爲我附上圖片 – alhashmiya 2012-03-12 22:19:04

+0

我不確定,但我剛剛在我的電腦上試過,因爲「unrar.dll」是一個32位項目,所以出現了問題。該項目的默認值是AnyCPU,我的操作系統是Win64bit。所以該DLL不會被加載BadImageFormatException。更改爲x86配置,一切正常。 – Steve 2012-03-12 22:28:57

+0

好的,先生,謝謝你的幫助,我會檢查我的安裝 – alhashmiya 2012-03-12 22:53:39

相關問題