0

Reader X/XI用に特別に設計されたマネージC++AdobeReaderプラグインがあります。Windows 7では正常に動作しますが、WindowsXPではCOMエラーがスローされます-クラスは登録されていません。

奇妙なことに、これは、プロジェクトをvs2005プロジェクトからvs2010に更新した後にのみ発生しました。古いvs2005プラグインは問題なく動作します。なぜそうなるのか、誰か手がかりがありますか?2010に移行したときは、標準のプロジェクト自動アップグレードを使用しました。残りのコードはすべて同じです。

編集:問題に関するいくつかのメモ

プラグインDLL自体は問題なくロードされました。例外が発生したのは、COM相互運用機能を介して.Net4dllをロードしようとしたときだけでした。

以前は、ロードしようとしていたdllは.net 2.0で記述されており、WindowsXPでも問題なくロードされます。ただし、.Net4dllはWin7にのみロードされます。.Net3.5は2.0と同じように機能するように見えることに注意してください。壊れているのは.net4だけです(チェックするために、まったく同じコードを2.0、3.5、および4.0に再コンパイルしました)。

4

1 に答える 1

0

問題は、AdobeのプロテクトモードとCOM相互運用機能を介して.Net 4 DLLを読み込もうとすることの組み合わせですが、WindowsXPでのみ発生します。

奇妙なことに...これらの変数のいずれかを変更すると、すべてが正常に機能します。.Net 3.5と2.0はどちらも、保護モードをオンにすると正常に読み込まれます。Windows 7は、保護モードがオンの状態で.Net4dllを正常にロードします。

Adobe for Windows XPで保護モードをオフにすると、問題が修正され、DLLが正常に読み込まれます。

これがこれに遭遇した他の誰かに役立つことを願っています。

于 2013-03-19T18:11:21.370 に答える