我有一个带有 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 *)' 一切正常。