2013-01-16 24 views
1

我有C++中的程序运行良好,但它有不同的步骤。它首先打开一个文件,然后根据它从文件中获得的数据进行一些计算。现在我试图通过matlab来运行它。我尝试了mex,但它太复杂了,因为我有VS 2010 Express和MATLAB 2007b。所以mex永远找不到我的c编译器。Matlab不会运行我的C++ .exe文件

我现在试图直接从C++程序可执行文件运行它。以下是我试图做到这一点:

system('C:\path\file.exe') 

它会运行,但命令窗口冻结,我不得​​不关闭Matlab的每次重回正轨。然后我试图双击它自己的可执行文件。它闪烁,但我可以看到它从我的文件"file could not be uploaded"输出的东西,它是由我的程序的一部分生成的,如果它找不到该文件。

然后我意识到这可能是因为这导致它不能运行和崩溃。 所以我写了一个示例代码,在系统命令打开.exe文件之前先打开文件。我做了类似fopen('fname','r')的东西,但没有任何效果。请注意,我试图打开的这个文件是一个.COF文件。

我试着运行使用调试和释放模式的.exe文件,但没有任何反应。它没有提供任何错误,这意味着它看到.exe文件,但命令行不出现,matland命令窗口冻结。

运行后,它应该提示用户在命令行中再取输入参数和输出的东西...

请帮助....

+4

请使用段落。 –

回答

0

我猜测你.COF文件与您的二进制可访问的路径不同。如果您可以重新编译,请尝试使用绝对路径名称,并在没有MATLAB的情况下先测试它。

还有更彻底的解决方法,比如将文件名作为命令行参数传递给二进制文件,或者在使用system时读取“当前目录”的规则,但也许你会对快速解决方案感到满意。

+0

绝对路径是什么意思? 而现在,我想尽一切办法。我还将我的.COF文件复制到了我正在运行的File.m目录中,但没有帮助我 – user1850791

+0

绝对路径是什么意思? 而现在,我会尝试任何可能的方式让它运行我也复制我的.COF文件在我正在运行的File.m目录,并没有帮助我 – user1850791

+0

感谢您的意见。可执行文件现在可用。但是Matlab仍然可以运行它。窗口命令停留在运行模式,没有任何东西出现 – user1850791