У меня есть DLL с классом Test.Заголовок:
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 *)', все будет работать хорошо.