1. 程式人生 > >C# matlab混合程式設計時出現的異常解決方法

C# matlab混合程式設計時出現的異常解決方法

最近專案涉及到用編好的matlab函式生成dll檔案供C#呼叫,其中出現了許多問題,現在我將這些問題彙總,寫篇博文。

1.使用deploytool工具生成的dll檔案後,C#呼叫dll檔案出現“未找到或是無法載入dll”檔案的錯誤

此類錯誤一般都是.NET版本的錯誤,需要做的是首先將matlab complier的環境變數設定好,我的路徑是:d:\Program Files\MATLAB\MATLAB Compiler Runtime\v717\runtime\win64。將此路徑新增到環境變數中。

然後matlab中輸入deploytool命令出現對話方塊,注意在Project-》Build之前記得開啟Project->settings,然後將其中的.NET版本設定成3.5版本,有些較老的VS可能不能識別.NET4.0

這樣,基本不會出現上述的錯誤。

2.呼叫dll後執行時出現異常

為了能讓matlab識別陣列型別,需要用到MWArray.dll檔案,MWArray.dll檔案可以在matlab安裝路徑下找到,例如:
D:\ProgramFiles\MATLAB\R2010b\toolbox\dotnetbuilder\bin\win32\v2.0MWArray是用來將C#資料型別轉換為matlab能夠識別的型別。

這種情況一般是需要配置matlab runtime,與上述方法基本相同,如果不行的話,建議使用老版本的VS比如VS2008,這樣問題基本可以解決。