DOBON.NET DOBON.NETプログラミング掲示板過去ログ

gsdll32.dllへの参照を追加する方法

環境/言語:[OS : Windows 7 / 言語 : C#]
分類:[.NET]

初めてこちらの掲示板に投稿させて頂きます。

【解決したい問題】

Windowsアプリケーションをつくろうとvisual studio 11でプログラミングを始めたばかりの素人プログラマーです。
gsdll32.dllの追加方法を教えていただけないでしょうか。

PDFファイルをリストビューに取り込んだ時のサムネをPDFから取得したい思い、こちらのサイト

A Simple C# Wrapper for Ghostscript
http://www.mattephraim.com/blog/2009/01/06/a-simple-c-wrapper-for-ghostscript/

のコードを参照しました。しかしながら、gsdll32.dllの追加方法がわかりません。
参照設定からdllを参照すると
「C:\Users\......\gsdll32.dllへの参照を追加できませんでした。ファイルがアクセス可能で、有効なアセンブリまたはCOMコンポーネントであることを確認してください。」
というエラーが出ます。

どこかでソリューションエクスプローラにドラッグ・アンド・ドロップでよいという書き込みを見た記憶があったのでやってみるとたしかに項目にはgsdll32.dllが追加されました。
しかしながら、ビルドして画像を書きだそうとすると
「DLL 'gsdll32.dll' を読み込めません: 指定されたモジュールが見つかりません。 (HRESULT からの例外: 0x8007007E)」
というエラーが出ます。

参照パスをdllのあるフォルダーとプロジェクトのフォルダーで設定してみましたがだめでした。

ですから、きちんとdllが追加できてないかと思うのです。
ご助言よろしくお願いいたします。
2011/12/25(Sun) 08:03:57 編集(投稿者)

参照設定を追加する必要があるのは、エラーメッセージにあるように COM か、.NET のアセンブリ(DLL)です。
Win32API やそれと同様に単純に関数を公開している DLL は参照設定から追加できません。(必要ありません)
gsdll32.dll とやらは、コードサンプルにあるように DllImport 属性で関数を使えるようにしているので、「Win32API やそれと同様に単純に関数を公開している DLL」にあたります。

きちんとサイトの英文読んでいますか?
参照設定を追加してくださいという手順はないはずです。
むしろ、以下のように、必要ないとすら書かれています。
"You don’t need to add DLL to references. This is not .NET but native PE file (Windows DLL)."


ところで、リンク先の冒頭に "Update" と書いてある部分を読みましたか?
そっちの方がハードル低そうに見えましたが…。

# 英語だから読みたくない、読まないでは困ります。:-P
2011/12/26(Mon) 18:27:38 編集(投稿者)

返信ありがとうございます。

その記事のコメントの方は見ておりませんでした。
同じような疑問を持った方が質問されていたのですね。

アドバイスのように、ghostscriptsharp.dllを使う方を試してみたのですが、
やはりgsdll32.dllが見つからないというふうに出ます。

この問題に関しては未解決ですが、以下のitextsharpを使ってimageを取り出す方法がうまくいき、
私としては解決しましたのでこのスレッドは解決とさせていただいてもよろしいでしょうか。
http://63.236.73.220/showthread.php?t=530736
■No29523に返信(サンゼロさんの記事)
> アドバイスのように、ghostscriptsharp.dllを使う方を試してみたのですが、
> やはりgsdll32.dllが見つからないというふうに出ます。

実行する exe と同じフォルダーに配置されていない、その他に必要な DLL がある場合にそれが配置されていないなどが予想されます。
DllImport だけを書けば、勝手に使えるようになってくれるわけではないので、適切な配置が必要です。

DOBON.NET | プログラミング道 | プログラミング掲示板