2011-07-20 99 views
1

我在嘗試從我的C++代碼調用Matlab函數時遇到問題。engOpen返回空

當我調用engOpen時,它總是返回NULL。 這裏是代碼:

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

有人知道如何解決這個問題嗎?

謝謝!

回答

2

如果你看一下engOpen文檔,它說:

在Windows系統上,engOpen打開一個COM通道MATLAB。安裝過程中註冊的MATLAB軟件開始運行。如果安裝過程中沒有登記,在命令行中,你可以輸入命令:

matlab /regserver 

我不知道那是你的問題,但它似乎值得一試。

+0

是的,抱歉,我忘了說我已經試過了。當我在命令行上執行matlab/regserver時,會彈出一個窗口,提示「無法爲MATLAB.AutoServer.Single設置註冊表值,可能沒有足夠的權限,以具有管理員權限的用戶身份重新運行MATLAB」。但我是這臺機器的管理員,所以我不確定問題是什麼。 – Sara

+0

對不起,我感到很蠢。我忘記了以管理員身份運行命令行。 – Sara