2013-07-25 13 views
7

Ich habe einige Matlab-Funktionen mit Matlab R2012a in. NET-DLL-Dateien kompiliert. und alles funktioniert so wie es sollte. Ich verwende WPF/C# .net 4.5 auf Windows 7 64bit und mein Programm funktioniert ok.Matlab Builder NE/MCR unter Windows 8

aber wir übertragen und testen jetzt unser Programm auf Windows 8 Pro. wir haben ein Problem in der Laufzeit - wir verwenden natürlich MCR R2012a, um die .dll-Dateien auszuführen. wir können die Klassen oder Funktionen in Win8 nicht laden und unser Programm stürzt ab.

Ist jemand auf dieses Problem gestoßen? hilft es, wenn wir die Funktionen mit Matlab R2013a kompilieren?

+0

Es wäre hilfreich, etwas von dem Verhalten zu wissen, wenn das Programm abstürzt. Irgendwelche Leads wie unterscheidbare Fehler, ein spezifischer Beendigungscode, alles im Ereignisprotokoll usw.? – SeanKilleen

+0

Ja. Es ist ein Fehler aufgetreten: Verwaltet (v4.0.30319) 'wurde mit Code -1073741819 (0xc0000005)' Zugriffsverletzung 'beendet. – Gilad

+0

Angesichts der Art des Fehlers haben Sie sichergestellt, dass das Konto, das es ausführt, volle Zugriffsrechte auf alle Ordner hat, die die Anwendung verwenden würde? Ich würde auch sehen, ob mit der rechten Maustaste auf das Programm und wählen Sie "Als Administrator ausführen" hilft. Es kann sein, dass auf Win8 versucht wird, etwas in diesem Kontext zu tun, ein etwas empfindlicheres UAC-System auszulösen. Bitte bestätigen Sie, ob Sie diese Dinge ausprobiert haben. – SeanKilleen

Antwort

11

Die Lösung für das Problem Matlab mit Fenstern ist 8

[assembly: MathWorks.MATLAB.NET.Utility.MWMCROption("-nojit")] 

in der Baugruppendatei hinzuzufügen.

Ich weiß nicht, warum das funktioniert. nojit- bedeutet kein Just-in-Time-Compiler, der eine Binärdatei erstellt.

aber wenn ich das hinzugefügt habe. Es funktionierte auch auf Windows 8 x64. mit der gleichen MCR

0

Die meisten Probleme, die ich mit MCR hatte, hatten mit einem falschen Wert der PATH-Variable zu tun. Dies kann passieren, wenn Sie mehr als eine MCR auf einem Computer installieren oder manchmal sogar nur eine installieren. Da Sie einen Zugriffsverletzungsfehler erhalten, nehme ich an, dass das System die MCR-DLLs finden kann, aber es findet die falschen (zum Beispiel 32 Bit statt 64 Bit). Überprüfen Sie sorgfältig Ihre PATH-Umgebungsvariable und stellen Sie sicher, dass sie auf den korrekten Speicherort der MCR-DLLs zeigt.

+0

Mir ist das Problem bekannt, aber das funktioniert perfectly in Windows 7 x64 und funktioniert nicht für die gleiche Konfiguration auf Win 8 x64. gleiche MCR R2012a X64. – Gilad

+0

Schlägt es sofort fehl, wenn Matlab initialisiert wird (wenn Sie zum ersten Mal eine Instanz der generierten Klasse erstellen) oder schlägt es nur fehl, wenn Sie eine Methode aufrufen? –

+0

schlägt es beim ersten Laden der Klasse fehl. – Gilad

Verwandte Themen