Проблема со ссылками на исполняемый файл с использованием MATLAB-функции "dos" - PullRequest
0 голосов
/ 12 мая 2011

У меня довольно простой вопрос, который поставил меня в тупик. Я пытаюсь запустить исполняемый файл, созданный из простой программы на C, используя MATLAB в качестве оболочки, т.е. используя следующий код MATLAB:

FileName = ['D:\Users\person\Desktop\MATLAB\GUI','\Program.exe &'];

dos(FileName);

Исполняемый файл правильно запускается, но вылетает, выдавая ошибку:

Debug Assertion Failed!

Program: D:\Users\person\Desktop\MATLAB\GUI\Program.exe

File: f:\\dd\vctools\crt_bld\self_x86\crt\src\fscanf.c

Expression: (stream != NULL)

Программы открывают текстовый файл, считывают ввод, выполняют математические функции и записывают вывод обратно в другой текстовый файл. Я предполагаю, что эта ошибка означает, что есть проблема чтения из текстового файла, НО - когда я запускаю исполняемый файл сам (т.е. двойной щелчок Windows Explorer), он выполняется безупречно, как я и ожидал.

Итак, только MATLAB указывает на местоположение файла, которое вызывает сбой. Есть идеи? Спасибо.

1 Ответ

0 голосов
/ 13 мая 2011

Похоже, относительные пути являются виновником.Команда Matlab выполняется из любого каталога, который вы указали в Matlab;cmd запускается из root или что-то в этом роде (мало что знаю о Dos).Вот почему это работает, когда вы указываете абсолютные пути.Измените каталог Matlab на корневой каталог DOS и посмотрите, работает ли он так, как он изначально закодирован.

Редактировать: обратите внимание, что это проблема любого файла, который пытается прочитать Program.exe, а не путь к Программе.сам exe.

...