我的C ++程序运行良好,但它有不同的步骤。它首先打开一个文件,然后根据从文件中获取的数据进行一些计算。现在我试图通过matlab运行它。我试过mex,但它太复杂了,因为我有VS 2010 Express和MATLAB 2007b。所以mex永远找不到我的c编译器。
我现在正试图直接从C ++程序可执行文件中运行它。以下是我尝试这样做的方法:
system('C:\path\file.exe')
它会运行,但命令窗口会冻结,我必须每次关闭Matlab才能重新回到正轨。然后我试着双击自己的可执行文件。它闪烁,但我可以看到它从我的文件"file could not be uploaded"
中输出一些内容,如果它找不到该文件,则由我的程序的一部分生成。
然后我意识到这可能是因为它导致它不能运行和崩溃。
所以我在系统命令打开.exe
文件之前编写了一个示例代码来打开文件。我做过类似fopen('fname','r')
的事情,但没有任何作用。请注意,我尝试打开的此文件是.COF
文件。
我尝试使用调试和发布模式运行.exe
文件,但没有任何反应。它没有给出任何错误,这意味着它会看到.exe
文件但是命令行没有出现并且matland命令窗口冻结。
运行后,它应该在命令行提示用户,然后获取输入参数并输出一些内容......
请帮忙......
答案 0 :(得分:0)
我猜你的.COF文件与二进制文件可以访问的路径不同。如果你可以重新编译,请尝试一个绝对路径名,并在没有MATLAB的情况下首先测试它。
有更多方法可以解决这个问题,例如将文件名作为命令行参数传递给二进制文件,或者在使用system
时读取“当前目录”的规则,但也许你会对快速解决方案感到满意。