我在工程中包了一个自己的dll,mfc扩展,里面有一个自己的CFrameWnd类,在工程中隐式加载(包进了lib和.h文件)没问题,然后把我的工程打包再解开之后工程里的自己的CFrameWnd的Create函数出错(ASSERT WINOCC.CPP 301行),为什么呢?

解决方案 »

  1.   


    CString Title;

    ((COUR_QQApp*)AfxGetApp())->m_FriendsInfo[i].ChatWnd = new (CChatFrameWnd);
    ((COUR_QQApp*)AfxGetApp())->m_FriendsInfo[i].ChatWnd->Create//这行报了ASSERT(NULL,Title,WS_OVERLAPPEDWINDOW,CRect(0,0,400,400),this);


    ((COUR_QQApp*)AfxGetApp())->m_FriendsInfo[i].ChatWnd->ShowWindow(SW_SHOW);
      

  2.   

    是在((COUR_QQApp*)AfxGetApp())->m_FriendsInfo[i].ChatWnd->ShowWindow(SW_SHOW);这行报错吧?创建的那一行没有成功ChatWnd为NULL;你再ShowWindow所以出错。BOOL CWnd::ShowWindow(int nCmdShow)
    {
    ASSERT(::IsWindow(m_hWnd));//(ASSERT WINOCC.CPP 301行) if (m_pCtrlSite == NULL)
    return ::ShowWindow(m_hWnd, nCmdShow);
    else
    return m_pCtrlSite->ShowWindow(nCmdShow);
    }
      

  3.   

    ((COUR_QQApp*)AfxGetApp())->m_FriendsInfo[i].ChatWnd->Create(NULL,Title,WS_VISIBLE|WS_OVERLAPPEDWINDOW,CRect(0,0,400,400),NULL);试试
      

  4.   

    试了
    还是不行~继续求大虾帮忙~~~~这段代码跑的好好的~
    就是今天解压后有问题了~
    但是把dll重新生成一遍后又能用了~可是我也不能总重新生成我的dll吧~~~~