http://www.rarlab.com/rar_add.htmからUnRAR.dllをダウンロードしましたパッケージには抽出された.rarファイルを選択してVS 2010で実行するとC#サンプルプロジェクトが含まれていますエラーメッセージDLL 'UNRAR.DLL'を読み込むことができません:指定されたモジュールが見つかりませんでした
と私は
が助けてくださいエラーの下に取得していますunrar.dll私は参照を追加するときに/私が行方不明です何私を指しますか?
http://www.rarlab.com/rar_add.htmからUnRAR.dllをダウンロードしましたパッケージには抽出された.rarファイルを選択してVS 2010で実行するとC#サンプルプロジェクトが含まれていますエラーメッセージDLL 'UNRAR.DLL'を読み込むことができません:指定されたモジュールが見つかりませんでした
と私は
が助けてくださいエラーの下に取得していますunrar.dll私は参照を追加するときに/私が行方不明です何私を指しますか?
UnRAR.dllは.NETアセンブリではないため、プロジェクト参照として使用することはできません。
これはネイティブDLLなので、P/Invokeを使用してそのメソッドにアクセスしたり、そのメソッドの周りにC++/CLIラッパーを記述したりする必要があります。
this MSDN forum threadにはサンプルコードがあります。これは適切な開始場所を提供し、必要なアプローチを示します。
Blue Mirror CD/DVD Indexerプロジェクトには、かなり完全なwrapperが含まれているようです。
はまたSevenZipSharpは、このアウト・オブ・ボックスのサポートを含んで注意すべきです。私は自分で使ったことはありませんが、チェックする価値はあるかもしれません。
サンプルライブラリ内の関数にアクセスするために使用
[DllImport("unrar.dll")]
について話しています。
このDLLは、テストプロジェクトの実行時に表示される必要があります。
プロジェクトを実行するBIN \ DEBUGフォルダまたは フォルダにコピーする必要があります。
.dllをコピーしましたが、BIN \ DEBUGから.exeをコンパイルして実行すると正常に動作しますが、もし私がそのthrowingエラーをデバッグするとエラーが発生しました "projectcouldファイルまたはアセンブリ 'unrar'またはその依存関係のいずれかをロードできませんでした。モジュールがasseblyマニフェストを含むと予想された"プロジェクトをDで実行する\ DEBUG ebugのモードで添付された画像と同じエラーが返される – alhashmiya
私は確信していませんが、私は自分のPCで試したところ、 "unrar.dll"が32ビットプロジェクトであるため問題がありました。プロジェクトのデフォルトはAnyCPUで、私のOSはWin64bitです。そのため、dllにはBadImageFormatExceptionがロードされません。 x86構成に変更され、すべて正常に動作します。 – Steve
OKご協力いただきありがとうございます私のインストールを確認します – alhashmiya
DLLをプロジェクトにインポートする方法を説明してください。 – evasilchenko
@DeviantSeev - 他の誰かがUnRAR.dllにアクセスするために使用しているコードへのリンクを追加しました。 –
@ M.Babcockありがとう私はリンクを参照してください同じラッパーは同じ著者からのサンプルプロジェクトに含まれていますが、Mr.Steveで述べたように "unrar.dll"はBIN \ DEBUGフォルダになければなりません。 BIN \ DEBUGから.exeをコンパイルして実行してもうまく動作しますが、「デバッグ時にエラーが発生しました」というエラーが発生しました。プロジェクトまたはコンパイル時にエラーが発生しました。ファイルまたはアセンブリ 'unrar'またはその依存関係のいずれもロードできません。 ... BIN \ DEBUGから.dllを削除すると、デバッグモードでプロジェクトが実行され、同じエラーが表示されます。 – alhashmiya