0

我正在使用 Maya API 中的 MArgList 类来检索在 Maya 命令行中输入的参数。根据类参考 MArgList::get 应该能够将 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 回答