1

私はC++でうまく動作するプログラムを持っていますが、それには異なるステップがあります。最初にファイルを開き、次にファイルから取得したデータに基づいていくつかの計算を行います。今、私はそれをmatlabで実行しようとしています。mexを試しましたが、VS 2010ExpressとMATLAB2007bを使用しているため、複雑になりすぎました。そのため、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 に答える