【问题标题】:Managed types Mixed types unsupported Visual C++托管类型 不支持的混合类型 Visual C++
【发布时间】:2012-10-25 03:01:27
【问题描述】:

所以我正在做的是创建一个位图移动的表单,当它们发生碰撞时,它们会“战斗”。位图保存为 VBot 并继承到子机器人中,为了跟踪机器人,我构建了一个指针数组。 VBot 和 BotContainer 是 .h 和 .cpp 文件,但是当我尝试在 Form.h 中创建私有 BotContainer 以跟踪机器人时,它给了我错误消息

错误 1 ​​错误 C4368:无法将“VList”定义为托管“Prog3::Form1”的成员:不支持混合类型 c:\users\duerst\documents\visual studio 2010\projects\prog 3\prog 3 \Form1.h 65 1 程序 3

我能做些什么来解决这个问题?

【问题讨论】:

    标签: visual-studio-2010 visual-c++


    【解决方案1】:

    你正在做这样的事情:

    class BotContainer
    {
        ...
    };
    
    public ref class Form1
    {
    private:
        BotContainer VList;
    
        ...
    };
    

    这是非法的,因为托管类型不能有非托管类型的成员(反之亦然)。您需要使用 指针 指向 BotContainer,在构造函数中实例化并在析构函数中删除:

    public ref class Form1
    {
    private:
        BotContainer* VList;
    
    public:
        Form1()
        {
            VList = new BotContainer();
            ...
        }
    
        ~Form1()
        {
            delete VList;
        }
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-25
      • 2016-08-31
      • 1970-01-01
      • 1970-01-01
      • 2021-05-30
      • 1970-01-01
      • 2022-01-03
      相关资源
      最近更新 更多