简体   繁体   English

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

[英]Register comdlg32.dll gets Regsvr32: DllRegisterServer entry point was not found

I have Windows 7, 64-bit.我有 Windows 7,64 位。

I'm trying to register a .dll (comdlg32.dll) using regsvr32.我正在尝试使用 regsvr32 注册一个 .dll (comdlg32.dll)。 But I get an error that says the dll is read but the DLLRegistryServer entry point is not found.但是我收到一条错误消息,指出已读取 dll 但未找到 DLLRegistryServer 入口点。

I have run the command under both System32 and SysWOW64 and I have run my commands with "Run As Administrator".我已经在 System32 和 SysWOW64 下运行了命令,并且我已经使用“以管理员身份运行”运行了我的命令。

My old MSComDlg.CommonDialog component is no longer working with 64-bit.我的旧 MSComDlg.CommonDialog 组件不再使用 64 位。

comdlg32.dll is not a COM DLL and cannot be registered. comdlg32.dll 不是 COM DLL,无法注册。

One way to confirm this for yourself is to run this command:自己确认这一点的一种方法是运行以下命令:

dumpbin /exports comdlg32.dll

You'll see that comdlg32.dll doesn't contain a DllRegisterServer method.您将看到 comdlg32.dll 不包含DllRegisterServer方法。 Hence RegSvr32.exe won't work.因此 RegSvr32.exe 将无法工作。

That's your answer.这就是你的答案。


ComDlg32.dll is aa system component. ComDlg32.dll 是一个系统组件。 (exists in both c:\\windows\\system32 and c:\\windows\\syswow64) Trying to replace it or override any registration with an older version could corrupt the rest of Windows. (同时存在于 c:\\windows\\system32 和 c:\\windows\\syswow64 中)尝试用旧版本替换它或覆盖任何注册可能会损坏 Windows 的其余部分。


I can help more, but I need to know what MSComDlg.CommonDialog is.我可以提供更多帮助,但我需要知道 MSComDlg.CommonDialog 是什么。 What does it do and how is it supposed to work?它有什么作用以及它应该如何工作? And what version of ComDlg32.dll are you trying to register (and where did you get it)?您尝试注册的 ComDlg32.dll 版本是什么(从哪里获得的)?

comdlg32.dll is not really a COM dll (you can't register it). comdlg32.dll 并不是真正的 COM dll(您无法注册它)。

What you need is comdlg32.ocx which contains the MSComDlg.CommonDialog COM class (and indeed relies on comdlg32.dll to work).您需要的是comdlg32.ocx ,它包含 MSComDlg.CommonDialog COM 类(并且确实依赖于 comdlg32.dll 来工作)。 Once you get ahold on a comdlg32.ocx, then you will be able to do regsvr32 comdlg32.ocx .一旦您掌握了 comdlg32.ocx,您就可以执行regsvr32 comdlg32.ocx

Registering DLL for Fundsite为 Fundsite 注册 DLL

Outdated or missing comdlg32.ocx runtime library can be the problem of causing this error.过时或缺少 comdlg32.ocx 运行时库可能是导致此错误的问题。 Make sure comdlg32.ocx file is not corrupted otherwise Download the File comdlg32.ocx (~60 Kb Zip).确保 comdlg32.ocx 文件没有损坏,否则下载文件 comdlg32.ocx (~60 Kb Zip)。

Download the file and extract the comdlg32.ocx to your the Windows\\System32 folder or Windows\\SysWOW64.下载文件并将 comdlg32.ocx 解压到 Windows\\System32 文件夹或 Windows\\SysWOW64。 In my case i started with Windows\\System32 but it didn't work at my end, so I again saved in Windows\\SysWOW64.在我的情况下,我从 Windows\\System32 开始,但它最终不起作用,所以我再次保存在 Windows\\SysWOW64 中。

Type following command from Start, Run dialog:“c:\\windows>System32\\regsvr32 Comdlg32.ocx “ or “c:\\windows>SysWOW64\\regsvr32 Comdlg32.ocx ”从“开始”、“运行”对话框键入以下命令:“c:\\windows>System32\\regsvr32 Comdlg32.ocx”或“c:\\windows>SysWOW64\\regsvr32 Comdlg32.ocx”

Now Comdlg.ocx File is register and next step is to register the DLL现在 Comdlg.ocx 文件已注册,下一步是注册 DLL

  1. Copy the Fundsite.Text.Encoding.复制 Fundsite.Text.Encoding。 dll into .Net Framework folder for 64bit on below path C:\\Windows\\Microsoft.NET\\Framework64\\v2.0.50727在以下路径 C:\\Windows\\Microsoft.NET\\Framework64\\v2.0.50727 上将 .dll 放入 .Net Framework 文件夹中的 64 位

  2. Then on command prompt and go to directory C:\\Windows\\Microsoft.NET\\Framework64\\v2.0.50727 and then run the following command as shown below.然后在命令提示符下并转到目录 C:\\Windows\\Microsoft.NET\\Framework64\\v2.0.50727 然后运行以下命令,如下所示。

This will register the dll successfully.这将成功注册dll。

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

Have you unistalled your Internet Explorer?您是否已卸载 Internet Explorer? I did, and I had the same issues, if so, you have to:我做了,我遇到了同样的问题,如果是这样,你必须:

  1. Reactivate IE (Control Panel -- Programs and Features -- Turn Windows features on or off).重新激活 IE(控制面板 -- 程序和功能 -- 打开或关闭 Windows 功能)。
  2. restarting the computer重新启动计算机
  3. (important!) running Windows Update to get all available updates for Microsoft Explorer (重要!)运行 Windows 更新以获取 Microsoft Explorer 的所有可用更新
  4. restarting the computer (again)重新启动计算机(再次)

Finally it works!终于成功了!

I have faced the same issue with COMDLG32.OCX and MSFLXGRD.OCX in Windows 10 and Visual Studio 2010. It's an MFC application.我在 Windows 10 和 Visual Studio 2010 中使用 COMDLG32.OCX 和 MSFLXGRD.OCX 时遇到了同样的问题。这是一个 MFC 应用程序。

Then I downloaded its zip file from the google after extracting copy them at following paths:然后我在以下路径解压后从谷歌下载了它的 zip 文件:

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

Then run Command Prompt as an Administrator then run the following commands:然后以管理员身份运行命令提示符,然后运行以下命令:

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

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

c:\\windows\\System32\\regsvr32 msflxgrd.ocx c:\\windows\\System32\\regsvr32 msflxgrd.ocx

On successfully updation of the above cmds it shows succeed message.成功更新上述 cmds 后,它会显示成功消息。

Information about missing entry point error installing legacy VB6 compiled applications on Windows 10 which I hope could be useful to someone.关于在 Windows 10 上安装旧版 VB6 编译应用程序时缺少入口点错误的信息,我希望这对某些人有用。

Missing OCX files can be found in the "OS\\System folder" of the Visual Basic 6.0 installer package.可以在 Visual Basic 6.0 安装程序包的“OS\\System 文件夹”中找到丢失的 OCX 文件。 Today I copied the relevant OCX file (from our network) to the local computer今天我将相关的OCX文件(从我们的网络)复制到本地计算机

And then I typed the commands below, as administrator, which normally work to register it.然后我以管理员身份输入以下命令,这些命令通常用于注册它。

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

(add the path to the locally copied file for the /i command) (为 /i 命令添加本地复制文件的路径)

However today I got errors from both these regsvr32.exe commands.但是今天我从这两个 regsvr32.exe 命令中得到了错误。

The second error was giving the DllImport missing entry point error which is similar to the error mentioned by the original poster.第二个错误是给出了 DllImport 缺少入口点错误,这类似于原始发布者提到的错误。

To resolve, one of the things I tried was leaving out the switch -为了解决这个问题,我尝试过的一件事是忽略开关 -

regsvr32.exe mscomctl.ocx

To my surprise it then said it was successful.令我惊讶的是,它然后说它成功了。 To confirm, the application started up properly afterwards.为了确认,应用程序随后正常启动。

SOLUTION OF Regsvr32: DllRegisterServer entry point was not found, Regsvr32 的解决方案:未找到 DllRegisterServer 入口点,

  1. Go to systemdrive(generally c:)\\system32 and search file "Regsvr32.exe"转到系统驱动器(通常为 c:)\\system32 并搜索文件“Regsvr32.exe”
  2. Right click and click in properties and go to security tab and click in advanced button.右键单击并单击属性,然后转到安全选项卡并单击高级按钮。
  3. Click in owner tab and click edit and select administrators and click ok.单击所有者选项卡,然后单击编辑并选择管理员,然后单击确定。
  4. Click in permissions点击权限
  5. Click in change permissions.单击更改权限。
  6. Choose administrators and click edit and put tick on full control and click ok.选择管理员并单击编辑并在完全控制上打勾,然后单击确定。
  7. Similarly, choose SYSTEM and edit and put tick on full control and click ok and click in other dialog box which are opened.同样,选择SYSTEM并编辑并在完全控制上打勾,然后单击确定,然后单击打开的其他对话框。
  8. Now .dll files can be registered and error don't come, you should re-install any software whose dll files was not registered during installation.现在可以注册.dll 文件并且不会出现错误,您应该重新安装任何在安装过程中未注册dll 文件的软件。

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM