クラス Test を持つ DLL があります。ヘッダ:
クラス MY_EXPORT テスト { 公衆: int doit(const string &str); };
およびソース:
整数 Test::doit(const string &str) { int(str.length()); を返します。 }
今、私はmexファイルからそれを使用しています:
空所 mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) { string str("こんにちは!"); テスト *t = 新しい Test(); t ->doit(文字列); }
問題は、その変数str
がメソッドに正しく渡されないことですdoit
。メソッド内にはラビッシュが含まれています。これは、参照によって渡されたすべてのオブジェクトで発生することがわかりました。私が間違っていることは何ですか?助けてください。
PS: 宣言を 'int doit(const char *)' に変更すると、すべて正常に動作します。