我有一个带有Test类的DLL。
头文件:class MY_EXPORT Test { public: int doit(const string &str); };源文件:
int Test::doit(const string &str) { return int(str.length()); }
现在我从mex文件中使用它:
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) { string str("hello!"); Test *t = new Test(); t->doit(str); }
问题在于,变量str
未正确传递到方法doit
。
在方法内部,它包含垃圾值。我发现这对所有通过引用传递的对象都是如此。我做错了什么?请帮忙。
PS:如果我将声明更改为'int doit(const char *)',则一切正常。