0

在此处输入图像描述 (大的)

在此处输入图像描述 (大的)

在进入函数的某个地方animationWithFrames,我的向量丢失了它的项目。

这实际上是一个CCMutableArray,它是 std::vector 的薄包装。

template<class T = CCObject*>
class CCMutableArray : public CCObject
{
public:
    typedef std::vector<T>                              CCObjectArray;
    typedef typename CCObjectArray::iterator            CCMutableArrayIterator;
    typedef typename CCObjectArray::reverse_iterator    CCMutableArrayRevIterator;
public:
    // ... helper functions ...
private:
    std::vector<T> m_array;
};

我没有得到的是,当我将变量发送到函数中时,调试器接受它有一个变量 m_array ,其中包含 2 个项目。

但在函数内部,变量似乎进入了“幽灵”形式。

框架包含:

m_array=[ 2 ](0x051d5078 ... )

但扩展, m_array 包含

[0]().

什么会导致调试器像这样不一致?

顺便说一句,代码看不到这些项目。他们在运输途中消失了。那就是问题所在。

Visual Studio 2010。在 2008 年运行良好。我可能会降级以做一些工作。

4

1 回答 1

0

结果证明这是一个完全愚蠢的问题,我显然将 2008 年构建的 cocos2d-x 链接到 2010 年项目。

调试器不太喜欢这样。

在 2010 内部重建 cocos2d-x 使问题消失,一切都很好。

于 2012-03-21T11:23:45.887 回答