55

我有 Windows 7、64 位。

我正在尝试使用 regsvr32 注册一个 .dll (comdlg32.dll)。但是我收到一条错误消息,指出已读取 dll 但找不到 DLLRegistryServer 入口点。

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

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

4

8 回答 8

15

comdlg32.dll 不是 COM DLL,无法注册。

自己确认这一点的一种方法是运行以下命令:

dumpbin /exports comdlg32.dll

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

这就是你的答案。


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


我可以提供更多帮助,但我需要知道 MSComDlg.CommonDialog 是什么。它有什么作用以及它应该如何工作?您要注册哪个版本的 ComDlg32.dll(以及您从哪里获得的)?

于 2012-12-19T08:58:21.073 回答
12

comdlg32.dll 并不是真正的 COM dll(您不能注册它)。

您需要的是包含 MSComDlg.CommonDialog COM 类的 comdlg32.ocx(并且确实依赖于 comdlg32.dll 才能工作)一旦你掌握了 comdlg32.ocx,你就可以做regsvr32 comdlg32.ocx.

于 2012-12-19T09:09:00.153 回答
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”</p>

现在 Comdlg.ocx 文件已注册,下一步是注册 DLL

  1. 复制 Fundsite.Text.Encoding。将 dll 放入路径 C:\Windows\Microsoft.NET\Framework64\v2.0.50727 下的 64 位 .Net Framework 文件夹中

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

这将成功注册 dll。

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

于 2014-08-07T20:40:15.720 回答
1

您是否卸载了 Internet Explorer?我做到了,我遇到了同样的问题,如果是这样,你必须:

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

终于成功了!

于 2014-02-04T04:12:22.383 回答
0

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

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

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

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

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

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

第二个错误是给出 DllImport 缺少入口点错误,这与原始海报提到的错误相似。

为了解决这个问题,我尝试过的其中一件事是省略了开关 -

regsvr32.exe mscomctl.ocx

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

于 2020-01-14T13:47:19.400 回答
0

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

然后我从谷歌下载了它的 zip 文件,然后在以下路径解压复制它们:

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

然后以管理员身份运行命令提示符,然后运行以下命令:

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

在成功更新上述 cmds 时,它会显示成功消息。

于 2020-01-12T13:48:39.307 回答
-4

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

于 2013-12-17T11:30:22.660 回答
-4

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

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