1

我有运行良好的 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 命令窗口冻结。

运行后,它应该在命令行提示用户,然后接受输入参数并输出一些东西......

请帮忙....

4

1 回答 1

0

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

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

于 2013-01-16T02:52:13.720 回答