API ガイド > コマンド プラグイン >

# MFnPlugin

次に示すのは hello コマンドの新バージョンで、hello コマンドを登録するとき、MSimple.h でマクロではなく MFnPlugin を使用します。

    #include <stdio.h>
    #include <maya/MString.h>
    #include <maya/MArgList.h>
    #include <maya/MFnPlugin.h>
    #include <maya/MPxCommand.h>
    #include <maya/MIOStream.h>
    class hello : public MPxCommand
    {
        public:
            MStatus doIt( const MArgList& args );
            static void* creator();
    };

    MStatus hello::doIt( const MArgList& args ) {
        cout << "Hello " << args.asString( 0 ).asChar() << endl;
        return MS::kSuccess;
    }

    void* hello::creator() {
        return new hello;
    }

    MStatus initializePlugin( MObject obj ) {
        MFnPlugin plugin( obj, "Autodesk", "1.0", "Any" );
        plugin.registerCommand( "hello", hello::creator );
        return MS::kSuccess;
    }

    MStatus uninitializePlugin( MObject obj ) {
        MFnPlugin plugin( obj );
        plugin.deregisterCommand( "hello" );
        return MS::kSuccess;
    }

注:

initializePlugin() と uninitializePlugin() がすべてのプラグインにあることが必要です。両方またはいずれか一方がなくても、プラグインはロードされません。また、Maya がクラスのインスタンスを作成するには creator が必要です。詳細については以下を参照してください。