我有一个带有 Test 类的 DLL。标题:
MY_EXPORT 类测试 { 上市: int doit(const string &str); };
和来源:
整数 测试::doit(const string &str) { 返回 int(str.length()); }
现在我从 mex 文件中使用它:
空白 mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) { 字符串 str("你好!"); 测试 *t = new Test(); t->doit(str); }
问题是,该变量str
未正确传递给方法doit
。在方法内部,它包含 rabish。我发现通过引用传递的任何对象都会发生这种情况。我做错了什么?请帮忙。
PS:如果我将声明更改为 'int doit(const char *)' 一切正常。