在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