0

Chrome 拡張機能内にパッケージ化する NPAPI プラグインを作成しました。Windows 2003 および Windows XP 64 ビットの Chrome で拡張機能を正常にインストールして使用できます。

ただし、プラグインを Windows 7 (32 ビットまたは 64 ビット) または Windows XP 32 ビットにインストールすると、Chrome 内で拡張機能を使用できません。Chrome ログには、「プラグインを初期化できませんでした」というエラー メッセージが表示されます。

すべての環境で依存関係ウォーカーを実行しましたが、拡張機能が機能しない環境では、すべて共通の警告メッセージ「警告: エクスポート関数が見つからないため、少なくとも 1 つのモジュールに未解決のインポートがあります。遅延負荷依存モジュールで。」(問題のDLLはSHLWAPI.DLL、IEFRAME.DLL、およびMPR.DLLです)一方、拡張機能が機能する環境にはこの警告はありません(ただし、そのうちの1つは遅延ロード依存モジュールが見つからないことを警告します)。

これらの DLL の依存関係は、Windows のバージョンごとに異なる必要がありますか? それらを解決する最善の方法は何ですか? それとも、プラグインの障害は、これらの DLL 依存関係に関連していない可能性が最も高いですか?

4

2 に答える 2

2

デフォルトの「/MD」の代わりに「/MT」コンパイラフラグを使用してバイナリをコンパイルすることにより、ランタイムライブラリに依存せずにプロジェクトを再構築します。

オープンソースコードに依存している場合は、必ず「/ MT」フラグを使用してこれらの各プロジェクトを再構築してください。そうしないと、これらのランタイムDLLの問題を永久に追跡することになります。

于 2012-10-11T19:28:13.317 に答える
0

shlwapi と ieframe はおそらくあなたの問題とは無関係です。これらのエラーが表示されることはよくある問題です。mpr.dll については不明です。見たことがありません。

FireBreathプラグインを試して依存関係ウォーカーの結果を比較し、firebreath には外部 DLL 依存関係がないため、firebreath が必要としないものを見つけることができるかどうかを確認できます。

于 2012-09-06T15:41:00.887 に答える