26

我正在尝试使用应用程序,该应用程序运行良好,我正在尝试编辑应用程序中的现有项目。单击编辑时出现以下错误,

System.Runtime.InteropServices.COMException was unhandled
  Message="Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))"
  Source="System.Windows.Forms"
  ErrorCode=-2147221164
  StackTrace:
       at System.Windows.Forms.UnsafeNativeMethods.CoCreateInstance(Guid& clsid, Object punkOuter, Int32 context, Guid& iid)
       at System.Windows.Forms.AxHost.CreateWithoutLicense(Guid clsid)
       at System.Windows.Forms.AxHost.CreateWithLicense(String license, Guid clsid)
       at System.Windows.Forms.AxHost.CreateInstanceCore(Guid clsid)
       at System.Windows.Forms.AxHost.CreateInstance()
       at System.Windows.Forms.AxHost.GetOcxCreate()
       at System.Windows.Forms.AxHost.TransitionUpTo(Int32 state)
       at System.Windows.Forms.AxHost.CreateHandle()
       at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
       at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
       at System.Windows.Forms.AxHost.EndInit()
       at bulk_lister.frm_edititem.InitializeComponent() in New Bulklister\new bulklister\bulk_lister\bulk_lister\frm_edititem.designer.cs:line 4248
       at bulk_lister.frm_edititem..ctor(Int32 userid, Int32 intListingId) in New Bulklister\new bulklister\bulk_lister\bulk_lister\frm_edititem.cs:line 187
       at bulk_lister.parent_form.funEditItem_fromrghtclktoolStrip_edititm() in New Bulklister\new bulklister\bulk_lister\bulk_lister\parent_form.cs:line 1313
       at bulk_lister.parent_form.rghtclktoolStrip_edititm_Click(Object sender, EventArgs e) in New Bulklister\new bulklister\bulk_lister\bulk_lister\parent_form.cs:line 1233
       at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
       at System.Windows.Forms.ToolStripButton.OnClick(EventArgs e)
       at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
       at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
       at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
       at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
       at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
       at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       at System.Windows.Forms.Control.WndProc(Message& m)
       at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
       at System.Windows.Forms.ToolStrip.WndProc(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Application.Run(Form mainForm)
       at bulk_lister.Program.Main() inNew Bulklister\new bulklister\bulk_lister\bulk_lister\Program.cs:line 17
       at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
       at System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args)
       at System.Runtime.Hosting.ManifestRunner.Run(Boolean checkAptModel)
       at System.Runtime.Hosting.ManifestRunner.ExecuteAsAssembly()
       at System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext, String[] activationCustomData)
       at System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext)
       at System.Activator.CreateInstance(ActivationContext activationContext)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssemblyDebugInZone()
       at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException: 

它与我在我的应用程序中使用的 Dll 文件一起使用。我曾尝试使用 regsvr32 注册此 dll 文件,但我无法成功。

DLL:AxInterop.DHTMLEDLib.dll & Interop.DHTMLEDLib.dll

有人知道这个例外吗?

4

9 回答 9

37

您的应用程序的目标平台是什么?我认为您应该将平台设置为x86,不要设置为Any CPU

于 2013-05-15T16:55:28.820 回答
13

这可能不是您的问题的解决方案,而是一个建议以防万一(我知道我之前遇到过类似的问题,但不是 .NET 应用程序)。

如果您在 64 位机器上,则有2 个 regsvr32.exe文件;一个在\Windows\System32 里面,另一个在里面\Windows\SysWOW64

您不能将 64 位 COM 对象注册到 32 位版本,但反之亦然。我会尝试使用这两个文件显式注册您的 DLL regsvr32.exe(即键入“ C:\Windows\System32\regsvr32.exe /i mydll.dll”,然后键入“ C:\Windows\SysWOW64\regsvr32.exe /i mydll.dll”)并查看是否有帮助...

于 2012-06-18T05:51:49.357 回答
7

当我将框架从 4.5 更改为 4 时,vlc 组件出现了同样的错误。但是当我将平台从 Any CPU 更改为 x86 时,它对我有用。

于 2013-08-08T00:02:56.640 回答
5

我今天偶然发现了一个我知道在我的 VS2013 项目中运行良好的 DLL,但不适用于 VS2015:

去:Project -> XXXX Properties -> Build -> Uncheck "Prefer 32-bit"

这个答案已经过期了,可能不会有任何好处,但是如果你。但我希望有一天这会对某人有所帮助。

于 2016-03-09T14:40:02.860 回答
2

我的解决方法是在 Visual Studio 的配置管理器中创建平台,并设置为 x64

于 2016-05-27T17:07:36.693 回答
1

[HRESULT:0x80040154(REGDB_E_CLASSNOTREG))

仅查看消息,听起来您引用的一个或多个组件,或者它们的一个或多个依赖项未正确注册。

如果您知道它是哪个组件,您可以使用 regsvr32.exe 注册它,只需打开命令提示符,进入组件所在的目录并输入 regsvr32 filename.dll(假设它是一个 dll),如果它有效,请尝试再次运行代码,否则返回错误。

如果您不知道它是哪个组件,请尝试重新安装/修复 GIS 软件(我假设您已经安装了一些包含您尝试使用的组件的 GIS 软件)。

于 2014-01-11T06:20:57.793 回答
0

您需要注册 DHTMLED.ocx

于 2012-06-18T05:52:05.563 回答
0

经过一系列的尝试,我找到了一个简单的解决方案。您可以尝试重新安装 Adob​​e flashplayer 的 ActiveX 插件。

于 2016-03-30T12:57:33.067 回答
0

以管理员身份打开 cmd 然后尝试在这两个位置注册

于 2019-09-10T07:51:38.353 回答