5

ターゲット マシンでアプリケーションをデプロイしようとすると、このエラーが発生します。

私はググって、DLLのいくつかを登録する必要があることを発見しました(私のアプリケーションで使用されています)

そのため、dll を System32 にコピーし、regsvr32 を実行しました。

その後、このエラーが発生しました

Interop.ShockwaveFlashObject.dll がロードされましたが、DllRegisterServer エントリ ポイントが見つかりませんでした。ファイルを登録できません

1 つの奇妙なことは、アプリケーションが 1 台のマシンだけで動作するわけではないということです。10 台の異なるマシンでテストしたところ、すべてうまくいきました。1台のマシンだけでは機能しませんでした。

誰かがこれについて私を助けてくれますか?

4

3 に答える 3

2

Interop dll を登録する必要はありません。既存の COM 登録済みオブジェクトへのポインターが効果的に含まれています。

通常の命名規則に従っている場合、ShockwaveFlashObject.dll がマシンに登録されていないように見えます (これは、regsvr32 に対して実行する必要がある DLL です)。おそらく、Shockwave/Flash をインストールする必要があります (および/または、既にインストールされていると思われる場合は、インストールされているバージョンが正しいものであることを確認してください)。

于 2010-07-02T08:25:04.987 に答える
1

たとえば、cmd を管理者として実行し、system32 ディレクトリを参照して、次を実行できます。

for %1 in (*.dll) do regsvr32 /s %1

for %1 in (*.ocx) do regsvr32 /s %1
于 2011-09-20T08:58:49.757 に答える
0

その相互運用 dll は、regsvr32.dll に登録する必要がある COM dll ではなく、COM と管理対象の間のリンクを管理する相互運用 dll であると私は信じています。

おそらく、他の dll (すべての COM dll、おそらく ShockwaveFlashObject.dll) を登録する必要があるか、他の依存関係が不足しています。動作するマシンと動作しないマシンの違いは何ですか? すべての依存関係はすべてのマシンにインストールされていますか (フラッシュなど?) OS は異なりますか? おそらく、一部の新しい OS には、古いマシンが持っている古い依存関係のすべてが含まれていない可能性があります。

于 2010-07-02T08:23:17.520 に答える