3ds Max C#插件Class_ID可能未实例化

时间:2018-06-10 06:59:43

标签: c# 3dsmax

启动3ds Max以测试我正在编写的插件时出现以下错误: “软件问题导致3ds Max意外关闭。” 提示和视图报告详细信息窗口不会显示有关错误发生位置的其他信息。

我阅读了C ++教程,并遵循Autodesk教程3ds Max SDK程序员指南和参考,编写.NET插件部分。

如何获得有关错误发生位置的更多信息?

在添加构造函数之前,描述符类中发生了实例化错误:

public class Descriptor : Autodesk.Max.Plugins.ClassDesc2
{
    IGlobal global;

    public IGlobal Global
    {
        get { return this.global; }
    }

    public Descriptor(IGlobal global)
    {
        this.global = global;
    }

    public override IClass_ID ClassID
    {
        get { return this.Global.Class_ID.Create((uint)0x28ca31e0, (uint)0x622d62c8); }
    }
    public override bool IsPublic
    {
        get { return true; }
    }
    public override string Category
    {
        get { return InternalName; }
    }
    public override string ClassName
    {
        get { return "Utilities"; }
    }
    public override SClass_ID SuperClassID
    {
        get { return SClass_ID.Utility; }
    }

    public override object Create(bool loading)
    {
        return new Utilities(this);
    }
}

1 个答案:

答案 0 :(得分:0)

应该从描述符中调用Descriptor.Create():

    public Descriptor(IGlobal global)
    {
        this.global = global;
        Create(true);
    }