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(以及你从哪里得到它)?
comdlg32.dll并不是真正的COM dll(无法注册)。
您需要的是包含MSComDlg.CommonDialog COM类的comdlg32.ocx(确实依赖于comdlg32.dll才能工作)。一旦获得comdlg32.ocx,您就可以执行regsvr32 comdlg32.ocx
了。
为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
将Fundsite.Text.Encoding.dll复制到以下路径下的.Net Framework 64位文件夹中 C:\Windows\Microsoft.NET\Framework64\v2.0.50727
然后在命令提示符上进入目录C:\Windows\Microsoft.NET\Framework64\v2.0.50727,然后按照下面所示运行以下命令。
这将成功注册dll。
C:\Windows\Microsoft.net\framework64\v2.0.50727>regasm "Dll Name".dll
你卸载了Internet Explorer吗?我是这样做的,但是仍然有同样的问题,如果是这样,你需要:
最终它可以工作!
我在Windows 10和Visual Studio 2010中使用MFC应用程序时,遇到了与COMDLG32.OCX和MSFLXGRD.OCX相同的问题。
然后我从谷歌下载了它的压缩文件,在提取后将它们复制到以下路径:
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
成功更新上述命令后,将显示成功消息。
cd \windows\syswow64
regsvr32.exe /u mscomctl.ocx
regsvr32.exe /i mscomctl.ocx
(为/i命令添加本地复制文件的路径)
但是今天我从这两个regsvr32.exe命令中都收到了错误信息。
第二个错误是给出了DllImport缺少入口点错误,这与原帖提到的错误类似。
为了解决问题,我尝试的其中一件事情是省略开关 -。
regsvr32.exe mscomctl.ocx
Regsvr32的解决方案:找不到DllRegisterServer入口点