我用VC++6.0 写了一段代码,编译链接都没有问题,只是在最后运行的时候出现了如下的问题。
Debug Assertion Failed!  
Program:(我编的程序的exe文件的路径)  
File:appcore.cpp  
Line:85  
For information on how your program can cause an assertion failure,
see the VC++ document on asserts 
Press Retry to debug the application我写的代码如下,是放在.c文件里面的
#include<afxwin.h>
class CHelloApp :public CWinApp
{
 public:
    virtual BOOL InitInstance();
};   CHelloApp HelloApp;
class CHelloWindow:public CFrameWnd
{
CStatic *cs1,*cs2;
    CFont   *font;
public:
        CHelloWindow();
        ~CHelloWindow();
};BOOL CHelloApp ::InitInstance()

   m_pMainWnd=new CHelloWindow();
       m_pMainWnd->ShowWindow(m_nCmdShow);
   m_pMainWnd->UpdateWindow();
   return TRUE;
}CHelloWindow::CHelloWindow()


CRect r;
    Create ( NULL,
            "welcome !",
            WS_OVERLAPPEDWINDOW,
           CRect(0,0,500,500));
    GetClientRect(&r);
r.InflateRect (-20,-20); cs1=new CStatic();
    cs1->Create("",
                WS_CHILD|WS_VISIBLE|SS_GRAYRECT,
                r,
                this);
    r.InflateRect (-10,-10);
    cs2=new CStatic();
    cs2->Create("MFC",
                WS_CHILD|WS_VISIBLE|SS_CENTER,
                r,
                this);

    font=new CFont;
font->CreateFont( 36,0,0,0,200,0,0,0,
              ANSI_CHARSET,OUT_DEFAULT_PRECIS,
  CLIP_DEFAULT_PRECIS,
  DEFAULT_QUALITY,
  DEFAULT_PITCH|FF_DONTCARE,
  "Times New Roman");
    cs2->SetFont(font);
}  CHelloWindow::  ~CHelloWindow()
{
   delete cs1;
   delete cs2;
}

解决方案 »

  1.   

    去VC安装目录找找appcore.cpp
    看看85行的代码怎么会是.c文件?确定是MFC工程?
      

  2.   

    应该有CHelloWindow theApp;这样的东东
      

  3.   

    85行的代码我有看,是如下的,我讲NULL改成了this,还是出现了一样的效果
    CWinApp::CWinApp(LPCTSTR lpszAppName)
    {
    if (lpszAppName != NULL)
    m_pszAppName = _tcsdup(lpszAppName);
    else
    m_pszAppName = NULL; // initialize CWinThread state
    AFX_MODULE_STATE* pModuleState = _AFX_CMDTARGET_GETSTATE();
    AFX_MODULE_THREAD_STATE* pThreadState = pModuleState->m_thread;
    ASSERT(AfxGetThread() == this);//85
    pThreadState->m_pCurrentWinThread = this;
    ASSERT(AfxGetThread() == this);
    m_hThread = ::GetCurrentThread();
    m_nThreadID = ::GetCurrentThreadId(); // initialize CWinApp state
    ASSERT(afxCurrentWinApp == this); // 87 only one CWinApp object please
    pModuleState->m_pCurrentWinApp = this;
    ASSERT(AfxGetApp() == this); // in non-running state until WinMain
    m_hInstance = NULL;
    m_pszHelpFilePath = NULL;
    m_pszProfileName = NULL;
    m_pszRegistryKey = NULL;
    m_pszExeName = NULL;
    m_pRecentFileList = NULL;
    m_pDocManager = NULL;
    m_atomApp = m_atomSystemTopic = NULL;
    m_lpCmdLine = NULL;
    m_pCmdInfo = NULL; // initialize wait cursor state
    m_nWaitCursorCount = 0;
    m_hcurWaitCursorRestore = NULL; // initialize current printer state
    m_hDevMode = NULL;
    m_hDevNames = NULL;
    m_nNumPreviewPages = 0;     // not specified (defaults to 1) // initialize DAO state
    m_lpfnDaoTerm = NULL;   // will be set if AfxDaoInit called // other initialization
    m_bHelpMode = FALSE;
    m_nSafetyPoolSize = 512;        // default size
    }
      

  4.   

    其中87是我写错了,原来就是有两个问题,是92和85都有问题,原来是NULL,被我改成了this;