在WindowsCE平台(自定义构建)上,我们的C#gui使用常规窗体来显示“弹出菜单”。 我们将FormBorderstyle设置为无,因为我们不希望窗体控件可见。Form.FormBorderStyle原生异常访问冲突
一段时间后,一些客户报告了“灰盒子”。 经过一些测试后,我们可以很快地重现问题。当我们不断地打开2个不同的菜单(表单)时,平台向我们展示了一个本地异常。
错误
一个土生土长的例外Tiger.CEHost.exe发生 。选择退出并 然后重新启动该程序,或选择 详细信息以获取更多信息。
细节:
错误
ExceptionCode:0000005
ExceptionAdress:00000001
读:00000001在WL.SetSTyle(IntPtr的hwnThis,UInt32的dwMask,UInt32的dwStyle)
在Form._SetBorderStyle(AGL_WINDOWSTYLE wstyVal,AGL_WINDOWSTYLE wstyMask)
在Form.set_FormBorderStyle(FormBorderStyle值)
在pDropDown.PopupForm.Show()
在pDropDown.Show()
在pButton.ShowHideDropDown()
在pButton.OnClick(EventArgs的)
在控制。 WnProc(WM WM,的Int32 wParam中,的Int32 LPARAM)
在Control._InternalWnProc(WM WM,的Int32 wParam中,的Int32 LPARAM)
在EVL.EnterMainLoop(IntPtr的hwnMain)
在Application.Run(表格FM)
在Program.Main(String [] args)
它似乎总是在FormBorderStyle属性失败。我们已经尝试删除所有的pInvokes,因为可能有些内存被覆盖了,但这没有帮助。
我们还记录每个调用Show方法,每个调用都在gui线程中进行,并且Form包含一个有效的句柄。
是否曾经有过一篇知识库文章或者其他什么文章? – JoelHess 2011-03-18 01:26:47
@JoelHess,不,在那个时刻没有时间,并且真的忘了它。 – Stormenet 2011-03-18 10:45:28