Проблем при рефериране на изпълним файл с помощта на dos функцията на MATLAB

Имам един доста прост въпрос, който ме затрудни. Опитвам се да стартирам изпълним файл, създаден от проста 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 сочи към местоположението на файла, което причинява срива. Някакви идеи? Благодаря ти.


person Matlab_novice    schedule 12.05.2011    source източник


Отговори (1)


Звучи сякаш относителните пътища са виновникът. Командата Matlab се изпълнява от директорията, която сте посочили в Matlab; cmd работи от root или нещо подобно (не знам много за Dos). Ето защо работи, когато посочите абсолютни пътища. Променете вашата Matlab директория на DOS root и вижте дали работи както е първоначално кодирано.

Редактиране: Имайте предвид, че проблемът е пътят до какъвто и да е файл, който Program.exe се опитва да прочете, а не пътят до самия Program.exe.

person Matt Phillips    schedule 12.05.2011
comment
Дефиницията на OP за fileName изглеждаше като абсолютни пътища... все пак това е напълно възможен източник на грешка. - person abcd; 13.05.2011
comment
@yoda Това беше пътят за програмата. Грешката възниква, когато Program.exe се опитва да прочете друг файл чрез fscanf. - person Matt Phillips; 13.05.2011
comment
Беше проблем с генерирането на моя C изпълним файл. Поправихме го, благодаря на всички за приноса! - person Matlab_novice; 13.05.2011