2013-07-25 3 views
7

Я скомпилировал некоторые функции matlab с использованием Matlab R2012a в .net DLL-файлы. и все работает так, как должно. Я использую WPF/C# .net 4.5 для Windows 7 64bit, и моя программа работает нормально.Matlab builder NE/MCR в Windows 8

Однако мы сейчас переносим и тестируем нашу программу на windows 8 pro. у нас есть проблема во время выполнения - мы используем, конечно, MCR R2012a для запуска DLL-файлов. мы не можем загружать классы или функции в win8, и наша программа вылетает из строя.

есть ли кто-нибудь столкнулся с этой проблемой? поможет ли нам скомпилировать функции с помощью Matlab R2013a?

+0

Было бы полезно узнать о некоторых поведении при сбое программы. Любые выводы, такие как отличительные ошибки, конкретный код выхода, что-либо в журнале событий и т. Д.? – SeanKilleen

+0

Да. Возникла ошибка: «Управляемый (v4.0.30319)» вышел с кодом -1073741819 (0xc0000005) «Нарушение доступа». – Gilad

+0

Учитывая характер ошибки, вы удостоверились, что учетная запись, работающая с ней, имеет полные права доступа к любой из папок, которые приложение будет использовать? Я также посмотрю, поможет ли щелчок правой кнопкой мыши программу и выбор «Запуск от имени администратора». Может быть, на Win8, стремясь что-то сделать в этом контексте, выезжает чуть более чувствительная система UAC. Пожалуйста, подтвердите, пробовали ли вы эти вещи. – SeanKilleen

ответ

11

Решение проблемы MatLab с Windows 8 является добавление

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

в файле сборки.

Я не знаю, почему это работает. nojit- означает не только компилятор времени, который создает двоичный файл.

но если это я добавил. он работал и на Windows 8 x64. с тем же MCR

0

Большинство проблем, с которыми я столкнулся с MCR, связаны с неправильным значением переменной PATH. Это может произойти при установке нескольких компьютеров MCR на компьютер, а иногда даже при установке только одного. Поскольку вы получаете ошибку нарушения прав доступа, я предполагаю, что система может найти DLL MCR, но она находит неправильные (например, 32 бит вместо 64 бит). Внимательно проверьте свою среду PATH var и убедитесь, что она указывает на правильное расположение библиотек MCR.

+0

Я знаю о проблеме, однако это работает в Windows 7 x64 и не работает для той же конфигурации на выигрыше 8 x64. тот же MCR R2012a X64. – Gilad

+0

Выполняется ли это сбой сразу же после инициализации Matlab (когда вы просто создаете экземпляр сгенерированного класса в первый раз), или он сбой только при вызове метода? –

+0

Ошибка при первом загрузке класса. – Gilad