我想從MATLAB工具包'oscmex'執行一些示例代碼。該工具包允許在MATLAB上使用OSC協議進行通信。我認爲這個問題是非特定的;它應該適用於任何工具包,它是以這種方式設置的。將MATLAB鏈接到一個DLL庫
拋開原因,我有一些簡單的麻煩讓工具包啓動並運行。該工具包沒有任何文檔。只有一組六個DLL文件(在一個目錄中)以及一組四個MATLAB'.m'示例代碼文件(在另一個目錄中)。過去我使用的每個工具包都是內置工具包,或者有直觀的(半自動)安裝程序。
下載工具包之後,我嘗試的第一件事就是運行其中一個'.M'示例代碼。這失敗了,因爲代碼的第一行包含功能osc(),它目前還沒有被MATLAB識別。
所以,我想我可能需要將'.M'文件移動到與DLL相同的文件夾中;也許MATLAB會看到DLL內部的函數。沒有骰子。
所以,我意識到我必須在啓動時以某種方式將MATLAB鏈接到DLL。我嘗試將DLL添加到一個文件夾,並在'pathdef.m'文件中添加一個條目。這也失敗了。
我讀過某處我可以通過使用loadlibrary()函數加載DLL文件。所以,我試圖做這個DLL文件。這在第一個文件上失敗:
>> loadlibrary('osc_free_address.dll')
Error using loadlibrary>lFullPath (line 587)
Could not find file osc_free_address.h.
我開始用盡選項......我怎樣才能讓這組DLL運行起來?
看起來它正在尋找dll的頭文件。你通常熟悉'mex'文件和共享庫之間的區別嗎?如果沒有,我會熟悉如何從matlab中調用本地代碼:http://www.mathworks。COM /幫助/ MATLAB/matlab_external /引入-MEX-files.html; http://www.mathworks.com/help/matlab/matlab_external/calling-functions-in-shared-libraries.html。此外,請確保您在使用的代碼中爲正確的架構編譯了dll。 – 2013-02-11 17:30:05
不幸的是,工具箱包裏沒有頭文件。該工具包可以在這裏找到:http://sourceforge.net/projects/oscmex – CaptainProg 2013-02-11 17:32:40