2012-03-12 34 views
0

http://www.rarlab.com/rar_add.htmからUnRAR.dllをダウンロードしましたパッケージには抽出された.rarファイルを選択してVS 2010で実行するとC#サンプルプロジェクトが含まれていますエラーメッセージDLL 'UNRAR.DLL'を読み込むことができません:指定されたモジュールが見つかりませんでした

Unable to load 'UNRAR.DLL'

と私は

unrar.dll could not be loaded

が助けてくださいエラーの下に取得していますunrar.dll私は参照を追加するときに/私が行方不明です何私を指しますか?

答えて

5

UnRAR.dllは.NETアセンブリではないため、プロジェクト参照として使用することはできません。

これはネイティブDLLなので、P/Invokeを使用してそのメソッドにアクセスしたり、そのメソッドの周りにC++/CLIラッパーを記述したりする必要があります。

this MSDN forum threadにはサンプルコードがあります。これは適切な開始場所を提供し、必要なアプローチを示します。

Blue Mirror CD/DVD Indexerプロジェクトには、かなり完全なwrapperが含まれているようです。


はまたSevenZipSharpは、このアウト・オブ・ボックスのサポートを含んで注意すべきです。私は自分で使ったことはありませんが、チェックする価値はあるかもしれません。

+0

DLLをプロジェクトにインポートする方法を説明してください。 – evasilchenko

+0

@DeviantSeev - 他の誰かがUnRAR.dllにアクセスするために使用しているコードへのリンクを追加しました。 –

+0

@ M.Babcockありがとう私はリンクを参照してください同じラッパーは同じ著者からのサンプルプロジェクトに含まれていますが、Mr.Steveで述べたように "unrar.dll"はBIN \ DEBUGフォルダになければなりません。 BIN \ DEBUGから.exeをコンパイルして実行してもうまく動作しますが、「デバッグ時にエラーが発生しました」というエラーが発生しました。プロジェクトまたはコンパイル時にエラーが発生しました。ファイルまたはアセンブリ 'unrar'またはその依存関係のいずれもロードできません。 ... BIN \ DEBUGから.dllを削除すると、デバッグモードでプロジェクトが実行され、同じエラーが表示されます。 – alhashmiya

2

サンプルライブラリ内の関数にアクセスするために使用

[DllImport("unrar.dll")] 

について話しています。

このDLLは、テストプロジェクトの実行時に表示される必要があります。
プロジェクトを実行するBIN \ DEBUGフォルダまたは フォルダにコピーする必要があります。

+0

.dllをコピーしましたが、BIN \ DEBUGから.exeをコンパイルして実行すると正常に動作しますが、もし私がそのthrowingエラーをデバッグするとエラーが発生しました "projectcouldファイルまたはアセンブリ 'unrar'またはその依存関係のいずれかをロードできませんでした。モジュールがasseblyマニフェストを含むと予想された"プロジェクトをDで実行する\ DEBUG ebugのモードで添付された画像と同じエラーが返される – alhashmiya

+0

私は確信していませんが、私は自分のPCで試したところ、 "unrar.dll"が32ビットプロジェクトであるため問題がありました。プロジェクトのデフォルトはAnyCPUで、私のOSはWin64bitです。そのため、dllにはBadImageFormatExceptionがロードされません。 x86構成に変更され、すべて正常に動作します。 – Steve

+0

OKご協力いただきありがとうございます私のインストールを確認します – alhashmiya

関連する問題