注册comdlg32.dll获取Regsvr32:找不到DllRegisterServer入口点

时间:2012-12-18 10:50:47

标签: windows dll regsvr32 common-dialog comdlg32

我有Windows 7,64位。

我正在尝试使用regsvr32注册.dll(comdlg32.dll)。但是我得到一个错误,表示读取了dll但找不到DLLRegistryServer入口点。

我已经在System32和SysWOW64下运行命令,并且我已经使用“以管理员身份运行”运行我的命令。

我的旧MSComDlg.CommonDialog组件不再使用64位。

8 个答案:

答案 0 :(得分:14)

运行此命令:

dumpbin /exports comdlg32.dll

您可能会看到comdlg32.dll不包含DllRegisterServer方法。因此RegSvr32.exe将无法正常工作。

这是你的答案。

ComDlg32.dll是一个系统组件。 (存在于c:\ windows \ system32和c:\ windows \ syswow64中)尝试替换它或覆盖旧版本的任何注册都可能破坏Windows的其余部分。

我可以提供更多帮助,但我需要知道MSComDlg.CommonDialog是什么。它做了什么以及它应该如何工作?你试图注册什么版本的ComDlg32.dll(你在哪里得到它)?

答案 1 :(得分:8)

comdlg32.dll实际上不是COM dll(你无法注册)。

你需要的是 comdlg32.ocx ,其中包含MSComDlg.CommonDialog COM类(实际上依赖于comdlg32.dll工作)。一旦你获得comdlg32.ocx的支持,你就可以regsvr32 comdlg32.ocx

答案 2 :(得分:5)

为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。 dll进入.Net Framework文件夹,64bit位于下面的路径上 C:\的Windows \ Microsoft.NET \ Framework64 \ V2.0.50727

  2. 然后在命令提示符下转到目录C:\ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727,然后运行以下命令,如下所示。

  3. 这将成功注册dll。

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

答案 3 :(得分:1)

您是否取消了Internet Explorer? 我做了,我遇到了同样的问题,如果有的话,你必须:

  1. 重新激活IE(控制面板 - 程序和功能 - 打开或关闭Windows功能)。
  2. 重新启动计算机
  3. (重要!)运行Windows Update以获取Microsoft Explorer的所有可用更新
  4. 重新启动计算机(再次)
  5. 最后它有效!

答案 4 :(得分:0)

在Windows 10和Visual Studio 2010中,COMDLG32.OCX和MSFLXGRD.OCX遇到了相同的问题。这是一个MFC应用程序。

然后我将其提取出来的zip文件解压缩后从以下位置从Google下载了它:

C:\Windows\System32 (*For 32-bit machine*)
C:\Windows\SysWOW64 (*For 64-bit machine*)

然后以 Administrator 身份运行命令提示符,然后运行以下命令:

For Windows 64-bit systems c:\windows\SysWOW64\ regsvr32 comdlg32.ocx
c:\windows\SysWOW64\regsvr32 msflxgrd.ocx (My machine is 64-bit configuration)

对于Windows 32位系统c:\ windows \ System32 \ regsvr32 comdlg32.ocx

c:\ windows \ System32 \ regsvr32 msflxgrd.ocx

成功更新以上cmd时,将显示成功消息。

答案 5 :(得分:0)

有关在Windows 10上安装旧版VB6编译应用程序时缺少入口点错误的信息,希望对某人有用。

缺少OCX文件可以在Visual Basic 6.0安装程序包的“ OS \ System文件夹”中找到。 今天,我将相关的OCX文件(从我们的网络)复制到了本地计算机上

然后我以管理员身份键入以下命令,该命令通常可以进行注册。

cd \windows\syswow64
regsvr32.exe /u mscomctl.ocx
regsvr32.exe /i mscomctl.ocx

(将路径添加到/ i命令的本地复制文件中)

但是今天我从这两个regsvr32.exe命令中都得到了错误。

第二个错误是给DllImport缺少入口点错误,该错误类似于原始张贴者提到的错误。

要解决,我尝试的一件事就是省去了开关-

regsvr32.exe mscomctl.ocx

令我惊讶的是,它随后说成功了。 为了确认,该应用程序随后正确启动。

答案 6 :(得分:-3)

我在Windows 7中注册myinfo.dll文件时遇到了类似的问题。以下为我工作: 在桌面上创建快捷方式 C:\ Windows \ System32 \ regsvr32.exe c:\ windows \ system32 \ myinfo.dll 右键单击刚刚创建的快捷方式,然后选择“以管理员身份运行”。

答案 7 :(得分:-4)

Regsvr32的解决方案:找不到DllRegisterServer入口点,

  1. 转到systemdrive(通常为c:)\ system32并搜索文件“Regsvr32.exe”
  2. 右键单击并单击属性,然后转到安全选项卡并单击高级按钮。
  3. 单击所有者选项卡,然后单击编辑并选择管理员,然后单击确定。
  4. 点击权限
  5. 点击更改权限。
  6. 选择管理员并单击编辑并在完全控制时打勾,然后单击确定。
  7. 同样,选择SYSTEM并编辑并将tick设置为完全控制并单击ok并单击其他打开的对话框。
  8. 现在.dll文件可以注册而且没有错误,你应该重新安装任何在安装过程中没有注册dll文件的软件。