Sto utilizzando AvalonDock 2.0 e ogni volta che apro un contenitore dock, mentre in modalità di debug l'arresto anomalo dell'applicazione (funziona correttamente durante l'esecuzione senza debug). Ottengo l'eccezione di seguito:"System.ComponentModel.Win32Exception" non gestito quando si utilizza AvalonDock 2.0
un'eccezione non gestita di tipo 'System.ComponentModel.Win32Exception' si è verificato in WindowsBase.dll
Ulteriori informazioni: l'operazione completata
mi sono imbattuto questo answer, che suggerisce di deselezionare le caselle da Impostazioni eccezione. La cosa cablata è che ha funzionato la prima volta che l'ha usata. ma non più. Ho provato su altre macchine che non funziona neanche. eventuali suggerimenti su come risolvere questo problema.
codice Avalon (eccezione generata alla linea 5)
protected override IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled) {
if (msg == Win32Helper.WM_WINDOWPOSCHANGING) {
if (_internalHost_ContentRendered) {
// the below line throw the exception
Win32Helper.SetWindowPos(_internalHwndSource.Handle, Win32Helper.HWND_TOP, 0, 0, 0, 0, Win32Helper.SetWindowPosFlags.IgnoreMove | Win32Helper.SetWindowPosFlags.IgnoreResize);
}
}
return base.WndProc(hwnd, msg, wParam, lParam, ref handled);
}
Questa è solo la codifica con ossa nella parte del progettista della biblioteca. Lanciano una Win32Exception con un codice di errore che indica il successo, probabilmente 'ERROR_SUCCESS'. Il costruttore di eccezioni sta traducendo quel codice di errore in un messaggio, che è * "L'operazione è stata completata con successo" * - cioè, non si è verificato alcun errore. Presenta una segnalazione di bug ai manutentori della biblioteca. –
@CodyGray sì, è vero, ma esiste un modo per interrompere l'intercettazione dell'eccezione dal lato dell'applicazione. come per la risposta a cui ho fatto riferimento nella mia domanda. la soluzione ha funzionato inizialmente ma non lo è più. e non riuscivo a capire perché. – IBRA
Il messaggio di eccezione che hai postato qui non indica che si tratta di un'eccezione di prima scelta. È anche improbabile che ciò risolva comunque il problema. Richiederebbe che ci fosse un blocco catch da qualche parte nel codice della libreria che catturava l'eccezione e la gestiva. Non sono sicuro di cosa farai per gestire un'eccezione che indica il successo. –