2

Visual C# 2008 Express Edition プロジェクトで Acrobat Inter Application Communication (IAC) を使用して、C# アプリケーション内で PDF ドキュメントを開こうとしています。
次のコードを実行すると、例外が発生します。

CAcroPDDoc pdDoc = new AcroPDDocClass();  

例外は、特定の CLSID の COM クラス ファクトリがエラー 80040154 で失敗したことを報告します。MSDN で winerror.h のエラー コードを調べると、エラーは登録されていないクラスに関連しています。
regsvr32 を使用して Interop.Acrobat.dll を登録しようとしましたが、これは機能しません (エントリ ポイントの DllRegisterServer が見つかりません)。
Acrobat 9 SDK に付属するサンプル C# プロジェクトを試しました (BasicIacCS - BasicIacCS.suo というビジュアル スタジオ プロジェクトがあり、これはエラーなしで c# Express にインポートされますが、同じ例外で失敗します)。


私は根本的な間違いを犯していますか?(私は Windows/.NET プログラミングは初めてです)
これはエクスプレス エディションで可能ですか、それとも Visual Studio にアップグレードする必要がありますか?


問題をさらに詳しく調べると、アプリケーション (.exe ファイル) の ILDASM を実行すると、問題の CLSID が利用可能になります。これは、アクセスしようとしている AcroPDDoc クラスの CLSID です。このクラスとそれに関連付けられている CLSID がレジストリにありません。フルバージョンではなく、Acrobat Reader のみがインストールされています。COM インターフェイスにアクセスするには、Acrobat のフルバージョンが必要ですか? (システムにはAcrord32.dllしかなく、Acrobat.dllはありません)。別の Vista マシンで同じプログラムを試し、Arobat リーダーをアンインストール/再インストールしましたが、結果は同じでした。

4

1 に答える 1

2

問題はおそらく、interop dll ではなく、メインの Acrobat dll が登録されていないことにあります。

Acrobat を再インストールするか、Acrobat DLL を登録してみてください。

于 2010-01-14T09:19:46.390 に答える