#include "stdafx.h"
#include <afx.h>
#include <afxcoll.h>class CAction:public CObject
{
public:
CAction(int nTime)
{
m_nTime=nTime;
}
void PrintTime()
{
TRACE("time=%d/n",m_nTime);
}
private:
int m_nTime;
};int main(int argc, char* argv[])
{
CAction* pAction;
CObList actionList;
int i;
for (i=0;i<5;i++)
{
pAction=new CAction(i);
actionList.AddTail(pAction);
}
while (!actionList.IsEmpty())
{
pAction=(CAction*)actionList.RemoveHead();
pAction->PrintTime();
delete pAction;
}
pAction=NULL;
return 0;
}

解决方案 »

  1.   

    问题是这样的,你选择了单线程版本的runtime library,请在菜单中选择多线程版本:
    project->settings->c++选项卡->选择Gategory下拉菜单中Code Generation->拉下Use run-time Library组合框,选择Multithreaded或者Debug Multithreaded即可正确编译,后者是调试版本的runtime library.
      

  2.   

    因为你只定义了一个指针pAction,但你定义了5个CAction的对象,所以会有问题的,最好也定义个指针数组;你出错的地方应该在
    delete pAction;这一句
      

  3.   

    楼上错解,楼主是用while循环删除的。
      

  4.   

    是TRACE语句有问题,不如换做cout
      

  5.   

    问题是这样的,你选择了单线程版本的runtime library,请在菜单中选择多线程版本:
    project->settings->c++选项卡->选择Gategory下拉菜单中Code Generation->拉下Use run-time Library组合框,选择Multithreaded或者Debug Multithreaded即可正确编译,后者是调试版本的runtime library????????????????????
     This macro is available only in the debug version of MFC
      

  6.   

    你的程序基本上没有问题,我稍微改了一下,有一个要改的重要地方是:
    点Project->Setting->Genenal->点Microsoft Foundation Classes:组合框下面的Use MFC in a Shared Dll,就可以编译成功,如还有问题,加我QQ:361577203联系!
    #include "stdafx.h"
    #include <afx.h>
    #include <afxcoll.h>
    #include "iostream.h"class CAction:public CObject
    {
    public:
    CAction(int nTime)
    {
    m_nTime=nTime;
    }
    void PrintTime()
    {
    // TRACE("time=%d/n",m_nTime);
    cout<<"time="<<m_nTime<<endl;
    }
    private:
    int m_nTime;
    };int main(int argc, char* argv[])
    {
    CAction* pAction;
    CObList actionList;
    int i;
    for (i=0;i<5;i++)
    {
    pAction=new CAction(i);
    actionList.AddTail(pAction);
    }
    while (!actionList.IsEmpty())
    {
    pAction=(CAction*)actionList.RemoveHead();
    pAction->PrintTime();
    delete pAction;
    }
    pAction=NULL;
    return 0;
    }