2011-07-20 10 views
1

私のC++コードからMatlab関数を呼び出そうとすると問題が発生します。engOpen returns Null

engOpenを呼び出すと、常にNULLが返されます。ここ はコードです:

Engine *m_pEngine; 
m_pEngine = engOpen(NULL); 
if(m_pEngine == NULL) 
{ 
    cout << "Error" << endl; 
    exit(1); 
} 

誰かがこの問題を解決する方法を知っていますか?

ありがとうございました!

答えて

2

あなたはそれが言うengOpenドキュメントを見れば:Windowsシステムでは

、engOpenは、MATLABにCOMチャンネルを開きます。インストール中に登録したMATLABソフトウェアが起動します。インストール時に登録しなかった場合、コマンドラインで次のコマンドを入力することができます

matlab /regserver 

私はそれがあなたの問題ではわからないが、それは試してみる価値思えます。

+0

ええ、申し訳ありませんが、私はすでにそれを試して忘れてしまった。コマンドラインでmatlab/regserverを実行すると、「MATLAB.AutoServer.Singleのレジストリ値を設定できません。十分な特権がない可能性があります.MATLABを管理者権限で再実行してください」というウィンドウが表示されます。しかし、私はこのマシンの管理者です。だから私はその問題が何であるか分かりません。 – Sara

+0

申し訳ありません、私は愚かだと感じます。私は管理者としてコマンドラインを実行するのを忘れていました。 – Sara