web-dev-qa-db-ja.com

登録comdlg32.dllがRegsvr32を取得する:DllRegisterServerエントリポイントが見つかりませんでした

Windows 7、64ビットを使用しています。

Regsvr32を使用して.dll(comdlg32.dll)を登録しようとしています。しかし、dllは読み込まれたがDLLRegistryServerエントリポイントが見つからないというエラーが表示されます。

System32とSysWOW64の両方でコマンドを実行し、「管理者として実行」でコマンドを実行しました。

古いMSComDlg.CommonDialogコンポーネントは、64ビットで動作しなくなりました。

49
disasterkid

次のコマンドを実行します:

dumpbin /exports comdlg32.dll

Comdlg32.dllにはDllRegisterServerメソッドが含まれていないことがわかるでしょう。したがって、RegSvr32.exeは機能しません。

それがあなたの答えです。

ComDlg32.dllはシステムコンポーネントです。 (c:\ windows\system32とc:\ windows\syswow64の両方に存在します)置き換えたり、古いバージョンの登録を上書きしようとすると、残りのWindowsが破損する可能性があります。

さらに支援することはできますが、MSComDlg.CommonDialogとは何かを知る必要があります。それは何をし、どのように機能するはずですか?また、ComDlg32.dllのどのバージョンを登録しようとしていますか(また、どこで入手しましたか)?

14
selbie

comdlg32.dllは、実際にはCOM dllではありません(登録できません)。

必要なのはcomdlg32.ocxで、これにはMSComDlg.CommonDialog COMクラスが含まれています(実際に動作するにはcomdlg32.dllに依存しています)。 comdlg32.ocxを把握すると、regsvr32 comdlg32.ocxを実行できるようになります。

8
Simon Mourier

FundsiteのDLLの登録

古いまたは欠落しているcomdlg32.ocxランタイムライブラリが、このエラーの原因の問題である可能性があります。 comdlg32.ocxファイルが破損していないことを確認してください。破損していない場合は、comdlg32.ocxファイルをダウンロードしてください(〜60 Kb Zip)。

ファイルをダウンロードし、comdlg32.ocxをWindows\System32フォルダーまたはWindows\SysWOW64に抽出します。私の場合、Windows\System32で起動しましたが、最後には機能しなかったため、再度Windows\SysWOW64に保存しました。

[スタート]、[ファイル名を指定して実行]ダイアログから次のコマンドを入力します。「c:\ windows> System32\regsvr32 Comdlg32.ocx」または「c:\ windows> SysWOW64\regsvr32 Comdlg32.ocx」

これでComdlg.ocxファイルが登録され、次のステップはDLLを登録することです

  1. Fundsite.Text.Encodingをコピーします。パスC:\ Windows\Microsoft.NET\Framework64\v2.0.50727上の64ビットの.Net Frameworkフォルダーへのdll

  2. 次に、コマンドプロンプトでディレクトリC:\ Windows\Microsoft.NET\Framework64\v2.0.50727に移動し、次のように次のコマンドを実行します。

これにより、dllが正常に登録されます。

C:\ Windows\Microsoft.net\framework64\v2.0.50727> regasm "Dll Name" .dll

5
user3919976

Internet Explorerをインストールしましたか?私は同じ問題を抱えていました。もしそうなら、あなたは:

  1. IE(コントロールパネル-プログラムと機能-Windowsの機能をオンまたはオフにする)を再度アクティブにします。
  2. コンピューターを再起動する
  3. (重要!)Windows Updateを実行して、Microsoft Explorerの利用可能なすべての更新プログラムを取得する
  4. コンピューターを再起動する(再び)

最後に動作します!

1
Andre