使用list来管理人物类的问题

//////////////////////////////////////////////////////////////////////////
//Name:bAddObjects
//Desc:Add a static object to the SpritManager class Manage
//////////////////////////////////////////////////////////////////////////
void SpritManager::bAddObjects( char* cObjectFileName , char* cObjectBackFileName , int xPos , int yPos )
{

//局部对像
Object TempObject;
//初始化
TempObject.SetWindow( MainDC , hWnd );
TempObject.CreateCompatibleHDC();
TempObject.vSetMemoryDC( MemoryDC );

TempObject.vSetDirection( Left );
TempObject.vSetWalkDistance( 3 );

TempObject.vSetSpritStand( 300 , 400 );
TempObject.SetImageAttribute( 512,512 );
TempObject.SetActionItemCount( 4 , 8 );
TempObject.vComputePartOfWalkBmpWAndH();
TempObject.LoadBmpImage( cObjectFileName , cObjectBackFileName );

ListObject.push_back( TempObject );

//Objects在头文件里定义,下面为初始化
Objects.SetWindow( MainDC , hWnd );
Objects.CreateCompatibleHDC();
Objects.vSetMemoryDC( MemoryDC );
Objects.vSetWalkDistance( 3 );
Objects.vSetSpritStand( xPos , yPos );
Objects.SetImageAttribute( 512,512 );
Objects.SetActionItemCount( 4 , 8 );
Objects.vComputePartOfWalkBmpWAndH();
Objects.LoadBmpImage( cObjectFileName , cObjectBackFileName );
Objects.vSetDirection( NoMove );

}

//////////////////////////////////////////////////////////////////////////
//Name:vRenderObject
//Desc:Render the object
//////////////////////////////////////////////////////////////////////////
void SpritManager::vRenderObject()
{

//奇怪使用迭代器怎么就不能渲染呢?哪里出错了
if( ListObject.size() > 0 )
{
for( list<Object>::iterator TempObject = ListObject.begin() ; TempObject != ListObject.end() ; TempObject++ )
{
TempObject->vRenderObject();
}

}

//这里可以把人物渲染出来
Objects.vRenderObject();

}

我把关键地方用中文写出来,哪位来看看有什么问题导致不能渲染人物,自己也是试了蛮多种方法都不得解!!
[2105 byte] By [sentball] at [2008-1-9]
# 1
代码不是很完整,但我个人认为很有可能是容器里的某些成员的引用问题,例如局部变量引用、临时指针、句柄之类。
d16-弟十六 at 2007-10-19 > top of Msdn China Tech,专题开发,技术,项目,游戏开发...
# 2
LZ,发得再详细点行不?不然很难帮到你
gaoyinxin at 2007-10-19 > top of Msdn China Tech,专题开发,技术,项目,游戏开发...
# 3
Object对象的复制定义是怎样的呢?怀疑你没有重载或者正确的实现它,尤其是哪个bitmap对象
很可能里面用到了指针, bAddObjects方法里面的tempobjects在退出的时候,释放了指针对象,因此list当中虽然有指针,但是已经失效了
# 4
对Object是什么样的, Copy constructor & assignment operator?
# 5
(*TempObject)->vRenderObject(),应该写成这样吧