我有一个Map,它根据传递的位置返回对象。 我现在正在做的是使用GetStartPosition检索起始位置,然后使用空检查遍历所有位置。
__POSITION* pos = m_mapofPosBlocksToEmulators.GetStartPosition();
while (pos) {
Emulator* pEmulator = m_mapOfPosBlocksToEmulators.GetValueAt(pos);
//do something
m_mapOfPosBlocksToEmulators.GetNext(pos); //exception thrown here
}
m_mapOfPosBlocksToEmulators
是CAtlMap类型,包含所有对象。
例外:
“关闭对象时不允许操作”。
我在getNext之前做了一次空检查: -
if (pos != NULL)
但它没有用。
我想知道在抛出异常的上下文中,我的意思是关闭哪个对象?这意味着什么?有没有办法检查对象是否已关闭?
如果有人遇到同样的问题,那么请让我知道,我也是 C ++ 的新手,所以任何人都想提供任何额外的见解,我会很感激:)。
编辑:当pos值= 0x00000000时抛出此异常。