1

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

engOpen を呼び出すと、常に NULL が返されます。コードは次のとおりです。

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

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

ありがとう !!!

4

2 に答える 2

2

engOpenドキュメントを見ると、次のように書かれています。

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

matlab /regserver

それがあなたの問題かどうかはわかりませんが、試してみる価値があるようです。

于 2011-07-20T16:35:53.500 に答える
0

管理者モードで Matlab を起動する必要があります。Matlab アイコンを右クリックし、[管理者として実行] を選択します。

管理中に Matlab を登録した場合でも、これを確認する必要があります。現在 COM リンクとして登録されていない場合、engOpen はサポートされません。

engOpen("") も機能するはずです

これだけではありません。IDE 構成 (または、コマンドライン コンパイラを使用している場合はリンカーとインクルード オプション) について覚えておく必要がある特定の mod があります。

これらの問題を解決するための Matlab 管理ページを次に示します。COM リンクの問題を超えて。

https://www.mathworks.com/matlabcentral/answers/100603-how-can-i-compile-a-matlab-engine-application-using-microsoft-visual-studio-9-0-or-10-0

于 2021-01-29T19:22:46.530 に答える