C++ コードから Matlab 関数を呼び出そうとすると問題が発生します。
engOpen を呼び出すと、常に NULL が返されます。コードは次のとおりです。
Engine *m_pEngine;
m_pEngine = engOpen(NULL);
if(m_pEngine == NULL)
{
cout << "Error" << endl;
exit(1);
}
誰かがこれを解決する方法を知っていますか?
ありがとう !!!
engOpen
ドキュメントを見ると、次のように書かれています。
Windows システムでは、engOpen は MATLAB への COM チャネルを開きます。インストール時に登録した MATLAB ソフトウェアが起動します。インストール時に登録しなかった場合は、コマンド ラインで次のコマンドを入力できます。
matlab /regserver
それがあなたの問題かどうかはわかりませんが、試してみる価値があるようです。
管理者モードで Matlab を起動する必要があります。Matlab アイコンを右クリックし、[管理者として実行] を選択します。
管理中に Matlab を登録した場合でも、これを確認する必要があります。現在 COM リンクとして登録されていない場合、engOpen はサポートされません。
engOpen("") も機能するはずです
これだけではありません。IDE 構成 (または、コマンドライン コンパイラを使用している場合はリンカーとインクルード オプション) について覚えておく必要がある特定の mod があります。
これらの問題を解決するための Matlab 管理ページを次に示します。COM リンクの問題を超えて。