0

Maya APIのMArgListクラスを使用して、Mayaコマンドラインに入力された引数を取得しています。クラスリファレンスによると、MArgList :: getは2番目の引数としてintまたはdoubleをとることができるはずですが、boolのみを期待しているようであるため、コンパイル中に変換エラーがスローされます。以下は、コードセクションと生成されたエラーです。これを引き起こしている可能性のあるものについての考えは大歓迎です。コードはMayaプラグイン開発のチュートリアルから直接入力されたため、機能しない理由は謎です。

const int nPosts = 5;
const double radius = 0.5;
const double height = 5.0;

unsigned index;
index = args.flagIndex( "n", "number" );
if( MArgList::kInvalidArgIndex != index )
    args.get( index + 1, nPosts );

unsigned index;
index = args.flagIndex( "r", "radius" );
if( MArgList::kInvalidArgIndex != index )
    args.get( index + 1, radius );

unsigned index;
index = args.flagIndex( "h", "height" );
if( MArgList::kInvalidArgIndex != index )
    args.get( index + 1, height );


1>Posts1Cmd.cpp(37): error C2664: 'MStatus MArgList::get(unsigned int,bool &) const' :               cannot convert parameter 2 from 'const int' to 'bool &'
1>Posts1Cmd.cpp(39): error C2086: 'unsigned int index' : redefinition
1>          Posts1Cmd.cpp(34) : see declaration of 'index'
1>Posts1Cmd.cpp(42): error C2664: 'MStatus MArgList::get(unsigned int,bool &) const' : cannot convert parameter 2 from 'const double' to 'bool &'
1>Posts1Cmd.cpp(44): error C2086: 'unsigned int index' : redefinition
1>          Posts1Cmd.cpp(34) : see declaration of 'index'
1>Posts1Cmd.cpp(47): error C2664: 'MStatus MArgList::get(unsigned int,bool &) const' : cannot convert parameter 2 from 'const double' to 'bool &'
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
4

1 に答える 1

1

関数から新しい値を取得する場合get、ターゲット変数を持つことはできませんconst

試す

int nPosts = 5;
double radius = 0.5;
double height = 5.0;

indexまた、呼び出しごとに新しい変数を宣言しないでください。一度宣言して再利用するだけです。

于 2012-07-21T06:30:30.967 に答える