WPF generuje wyjątek analizy XAML, który zawiera niestandardową kontrolkę Winforms
Mam aplikację WPF, która używa kontrolki niestandardowej Winforms zbudowanej w C ++/CLI. Gdy moja aplikacja przechodzi do analizowania kodu XAML dla mojego głównego okna, zgłasza wyjątek. Informacje wydają się być nieco skrócone, ale mówi:
A first chance exception of type 'System.Windows.Markup.XamlParseException' occurred in PresentationFramework.dllAdditional information: is not a valid Win32 application. (Exception from HRESULT: 0x800700C1) Error in markup file 'OsgViewer;component/osgviewerwin.xaml' Line 1 Position 9.
Skomentowałem moją kontrolkę WinForm w XAML i wszystko ładuje się dobrze. Pomyślałem, że może konstruktor mojej kontrolki robi coś złego, więc umieściłem w nim punkt przerwania, ale punkt przerwania nie wydaje się być włączony podczas uruchamiania aplikacji i nigdy go nie trafia, jak rozumiem, oznacza, że biblioteka DLL zawierający tę linię nie jest ładowany. Co najprawdopodobniej spowoduje zgłoszenie wyjątku podczas tworzenia wystąpienia obiektu typu DLL - nie można znaleźć treści konstruktora obiektu.
Zrobiłem to pomyślnie w innym projekcie w przeszłości, więc wyciągnąłem kolejną niestandardową kontrolkę WinForms z tej aplikacji i utworzyłem ją w XAML i wszystko działa dobrze.
Więc to jest coś w tej bibliotece DLL. Mam odwołanie do biblioteki DLL w mojej aplikacji WPF C #, a kiedy ładuję bibliotekę DLL do Eksploratora obiektów, wszystkie wymagane klasy i przestrzenie nazw są wyświetlane poprawnie. Aplikacja kompiluje się dobrze, problem po prostu pojawia się podczas analizowania kodu XAML. Czy ktoś widział coś takiego? Jakieś pomysły, co może być tego przyczyną? Pomysły na debugowanie? Podziękować!
<Window x:Class="OsgViewer.OsgViewerWin"
xmlns="[url=http://schemas.microsoft.com/winfx/2006/xaml/presentation"]http://schemas.microsoft.com/w ... ot%3B[/url]
xmlns:x="[url=http://schemas.microsoft.com/winfx/2006/xaml"]http://schemas.microsoft.com/winfx/2006/xaml"[/url]
xmlns:int="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"
xmlns:myns="clr-namespace:MyGlobalNS.MyNS;assembly=MyAssembly"...
<int:WindowsFormsHost x:Name="m_Host">
<myns:CMyClass x:Name="m_MyClass"/>
</int:WindowsFormsHost>...
</window>
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
6 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Wyzwaniem jest dowiedzieć się, dlaczego. Oto moje sugestie, które możesz wypróbować:
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Rozwiązaniem jest całkowite uniknięcie używania boost :: thread lub ograniczenie jego użycia do plików .cpp w kodzie natywnym.
Anonimowy użytkownik
Potwierdzenie od:
Mikrofon
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od: