Windows 8 comctl32.dll访问冲突

Windows 8 comctl32.dll访问冲突,comctl32,Comctl32,我在Windows 8上遇到以下异常。但是,它可以在Windows7环境下工作。看起来此异常是由comctl32.dll引发的。我已经浏览了下面的内容,其中有工具提示问题,而不是comboxbox 应用程序:Application.exe 框架版本:v4.0.30319 描述:由于未处理的异常,进程已终止。 异常信息:System.AccessViolationException at System.Windows.Forms.UnsafeNativeMethods.CallWindowPro

我在Windows 8上遇到以下异常。但是,它可以在Windows7环境下工作。看起来此异常是由comctl32.dll引发的。我已经浏览了下面的内容,其中有工具提示问题,而不是comboxbox

应用程序:Application.exe 框架版本:v4.0.30319 描述:由于未处理的异常,进程已终止。 异常信息:System.AccessViolationException

at System.Windows.Forms.UnsafeNativeMethods.CallWindowProc(IntPtr, IntPtr, Int32, IntPtr, IntPtr)
at System.Windows.Forms.NativeWindow.DefWndProc(System.Windows.Forms.Message ByRef)
at System.Windows.Forms.Control.DefWndProc(System.Windows.Forms.Message ByRef)
at System.Windows.Forms.Control.WmCommand(System.Windows.Forms.Message ByRef)
at System.Windows.Forms.Control.WndProc(System.Windows.Forms.Message ByRef)
at System.Windows.Forms.ComboBox.WndProc(System.Windows.Forms.Message ByRef)
at CCS.UserInterface.MetaComboBox.WndProc(System.Windows.Forms.Message ByRef)
at System.Windows.Forms.Control+ControlNativeWindow.OnMessage(System.Windows.Forms.Message ByRef)
at System.Windows.Forms.Control+ControlNativeWindow.WndProc(System.Windows.Forms.Message ByRef)
at System.Windows.Forms.NativeWindow.Callback(IntPtr, Int32, IntPtr, IntPtr)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG ByRef)
at System.Windows.Forms.Application+ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr, Int32, Int32)
at System.Windows.Forms.Application+ThreadContext.RunMessageLoopInner(Int32, System.Windows.Forms.ApplicationContext)
at System.Windows.Forms.Application+ThreadContext.RunMessageLoop(Int32, System.Windows.Forms.ApplicationContext)
at System.Windows.Forms.Application.Run(System.Windows.Forms.Form)
at <Application>.MainApplication.Load(Splash)
at <Application>.Program.Main(System.String[])

Faulting application name: CCSEnterprise.exe, version: 4.354.4.15321, time stamp: 0x53dfe4c1
Faulting module name: comctl32.dll, version: 6.10.9600.17031, time stamp: 0x5308889d
Exception code: 0xc0000005
Fault offset: 0x00051a6e
Faulting process id: 0x13f8
Faulting application start time: 0x01cfb08bc91cf716
Faulting application path: C:\355AAA\Application.exe
Faulting module path: C:\WINDOWS\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.9600.17031_none_a9efdb8b01377ea7\comctl32.dll
Report Id: 2284a19e-1c7f-11e4-be73-1078d298a609
Faulting package full name: 
Faulting package-relative application ID:
位于System.Windows.Forms.unsafentiveMethods.CallWindowProc(IntPtr、IntPtr、Int32、IntPtr、IntPtr)
位于System.Windows.Forms.NativeWindow.DefWndProc(System.Windows.Forms.Message ByRef)
位于System.Windows.Forms.Control.DefWndProc(System.Windows.Forms.Message ByRef)
在System.Windows.Forms.Control.WmCommand(System.Windows.Forms.Message ByRef)中
位于System.Windows.Forms.Control.WndProc(System.Windows.Forms.Message ByRef)
位于System.Windows.Forms.ComboBox.WndProc(System.Windows.Forms.Message ByRef)
在CCS.UserInterface.MetaComboBox.WndProc(System.Windows.Forms.Message ByRef)中
在System.Windows.Forms.Control+ControlNativeWindow.OnMessage(System.Windows.Forms.MessageByRef)中
在System.Windows.Forms.Control+ControlNativeWindow.WndProc(System.Windows.Forms.Message ByRef)中
在System.Windows.Forms.NativeWindow.Callback(IntPtr、Int32、IntPtr、IntPtr)中
在System.Windows.Forms.UnsafentiveMethods.DispatchMessageW(MSG ByRef)中
在System.Windows.Forms.Application+ComponentManager.System.Windows.Forms.UnsafentiveMethods.IMsoComponentManager.FPushMessageLoop(IntPtr、Int32、Int32)中
位于System.Windows.Forms.Application+ThreadContext.RunMessageLoopInner(Int32,System.Windows.Forms.ApplicationContext)
位于System.Windows.Forms.Application+ThreadContext.RunMessageLoop(Int32,System.Windows.Forms.ApplicationContext)
在System.Windows.Forms.Application.Run(System.Windows.Forms.Form)上运行
at.main应用程序加载(飞溅)
at.Program.Main(System.String[])
故障应用程序名称:CCSEnterprise.exe,版本:4.354.4.15321,时间戳:0x53dfe4c1
故障模块名称:comctl32.dll,版本:6.10.9600.17031,时间戳:0x5308889d
异常代码:0xc0000005
故障偏移量:0x00051a6e
出错进程id:0x13f8
故障应用程序启动时间:0x01cfb08bc91cf716
出错的应用程序路径:C:\355AAA\application.exe
故障模块路径:C:\WINDOWS\WinSxS\x86\u microsoft.WINDOWS.common-controls\u 6595b64144ccf1df\u 6.0.9600.17031\u none\u a9efdb8b01377ea7\comctl32.dll
报告Id:2284a19e-1c7f-11e4-be73-1078d298a609
故障包全名:
错误包相对应用程序ID:

我发现这个问题不仅发生在WPF中,也发生在WinForms中。 很难说问题的根源是什么,但似乎与OpenFileDialog相关的Microsoft dll仍有bug(对我来说,是ComDlg32.dll、OpenFileDialog、ShowDialog()调用)

调用ShowDialog()函数的唯一方法是将其包装在事件中,并在

this.BeginInvoke(
        new Action<YourObject, EventArgs>(YourObject_FileDialogOpened), new object[] 
                                                        { YourObjectInstance, e });
this.BeginInvoke(
新操作(YourObject\u FileDialogOpen),新对象[]
{YourObjectInstance,e});
其中“this”是一个控件(例如,表单)

BeginInvoke(…)授予您调用的将以适当方式处理的权限


如果您使用按钮单击事件下的OpenFileDialog调用或任何其他类似场景,则不会出现问题。

我们已经开始遇到相同的问题,但仅从2016年5月5日起。多年未接触过的客户端安装在comctl32.dll中因访问冲突而开始崩溃

事实证明,AVG(防病毒软件)不知何故导致了这个问题。还有其他论坛和线程报告类似的问题

对于我们的应用程序,有两件事是有效的

1) 在XP SP3兼容模式下运行(即使在Windows 8或10上)

2) 禁用平均值