我有一個非常簡單的dll庫頭文件,但它是用C++編寫的。任何人都可以幫助我編輯它,以便與Matlab(本地C)中的「LoadLibrary」命令兼容?我意識到這不是一個普遍的問題,但更可能缺乏我的知識。但如果解決方案很簡單,我將不勝感激任何建議。Matlab:用於dll的C++頭文件
// The following ifdef block is the standard way of creating macros which make exporting
// from a DLL simpler. All files within this DLL are compiled with the TRACKERERRORSDLL_EXPORTS
// symbol defined on the command line. this symbol should not be defined on any project
// that uses this DLL. This way any other project whose source files include this file see
// TRACKERERRORSDLL_API functions as being imported from a DLL, whereas this DLL sees symbols
// defined with this macro as being exported.
#ifdef TRACKERERRORSDLL_EXPORTS
#define TRACKERERRORSDLL_API __declspec(dllexport)
#define TRACKERERRORSDLL_VB __declspec(dllexport) __stdcall
#else
#define TRACKERERRORSDLL_API __declspec(dllimport)
#define TRACKERERRORSDLL_VB __declspec(dllimport) __stdcall
#endif
#include <string>
using namespace std;
bool TRACKERERRORSDLL_API GetTPIErrorDescription_wstring(long errorNumber,
basic_string<__wchar_t> & shortDescription,
basic_string<__wchar_t> & longDescription,
basic_string<__wchar_t> & solutionDescription,
bool & isAutoRecoverOnGreenState);
bool TRACKERERRORSDLL_API GetTPIErrorDescription_wstring(long errorNumber,
basic_string<unsigned short> & shortDescription,
basic_string<unsigned short> & longDescription,
basic_string<unsigned short> & solutionDescription,
bool & isAutoRecoverOnGreenState);
bool TRACKERERRORSDLL_API GetTPIErrorDescription_string(long errorNumber,
string & shortDescription,
string & longDescription,
string & solutionDescription,
bool & isAutoRecoverOnGreenState);
bool TRACKERERRORSDLL_API GetTPIErrorDescription_CString(long errorNumber,
CString & shortDescription,
CString & longDescription,
CString & solutionDescription,
bool & isAutoRecoverOnGreenState);
bool TRACKERERRORSDLL_VB GetTPIErrorDescription_VB(int errorNumber,
LPSTR* shortDescription,
LPSTR* longDescription,
LPSTR* solutionDescription,
bool* isAutoRecoverOnGreenState);
鏈接下載庫(64位): https://docs.google.com/file/d/0BzzppV2CG8ZldzFRVzJUa252MHc/edit?usp=sharing
Matlab的R2013a 64
您是否發現[此主題](https://www.mathworks.com/matlabcentral/newsreader/view_thread/154975)呢? –
您也可以創建一個C++ MEX函數,該函數鏈接上述庫。然後它很容易使用'GetTPIErrorDescription_string'版本,它將'std :: string'作爲'mxArray'返回給MATLAB。 – Amro