调试版什么问题也没有,
发布版能打开打开文件对话框,但一关闭就出错,不管是点确定还是取消.
发现是在用运时库就有问题,调试时库就没问题;
我是在子类化的类成员函数中调用的打开文件对话框.同样代码如果放到主对话框成员函数中就不会出错,什么问题也没有,
不知道怎么回事

解决方案 »

  1.   

    void CPlayList::AddOne()
    {//添加视频文件名//打开文件
    char VideoFileName[256];
    memset( VideoFileName, '\0', sizeof( VideoFileName ) );CFileDialog   dlg( TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT,  NULL,NULL);

    dlg.m_ofn.lpstrFilter     = "MPEG文件(*.MPG)\0*.MPG;*.dat;*.mpeg";
        dlg.m_ofn.lpstrCustomFilter = NULL;
        dlg.m_ofn.nMaxCustFilter = 0;
        dlg.m_ofn.nFilterIndex     = 1;
        //dlg.m_ofn.lpstrFile         = VideoFileName;
        //dlg.m_ofn.nMaxFile         = 256*10;
        dlg.m_ofn.lpstrInitialDir   = "d:\\";
    //dlg.m_ofn.lpstrFileTitle    = gszFileTitle;
        dlg.m_ofn.nMaxFileTitle     = 256;
        dlg.m_ofn.lpstrTitle        = "选择视频文件以打(可以选择多个)";
        dlg.m_ofn.lpstrDefExt       = "MPG";
        //dlg.m_ofn.Flags             = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT  | OFN_ALLOWMULTISELECT;int iReturn=dlg.DoModal();if(iReturn == IDCANCEL)   {
    //如果选择了取消返回
    return;   }
    if(iReturn ==  IDOK)
       {
    //如果选择了OK
    POSITION pos = dlg.GetStartPosition();
    while (pos != NULL)
    {
    CString strtemp;
    strtemp=dlg.GetNextPathName(pos);
    //写视频文件名
    int i = ItemNumber;
    InsertItem(i,strtemp);
    //表项个数加1
    ItemNumber+=1;
    }
       }}
      

  2.   

    void CPlayList::AddOne()
    {//添加视频文件名//打开文件
    char VideoFileName[256];
    memset( VideoFileName, '\0', sizeof( VideoFileName ) );CFileDialog   dlg( TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT,  NULL,NULL);

    dlg.m_ofn.lpstrFilter     = "MPEG文件(*.MPG)\0*.MPG;*.dat;*.mpeg";
        dlg.m_ofn.lpstrCustomFilter = NULL;
        dlg.m_ofn.nMaxCustFilter = 0;
        dlg.m_ofn.nFilterIndex     = 1;
        //dlg.m_ofn.lpstrFile         = VideoFileName;
        //dlg.m_ofn.nMaxFile         = 256*10;
        dlg.m_ofn.lpstrInitialDir   = "d:\\";
    //dlg.m_ofn.lpstrFileTitle    = gszFileTitle;
        dlg.m_ofn.nMaxFileTitle     = 256;
        dlg.m_ofn.lpstrTitle        = "选择视频文件以打(可以选择多个)";
        dlg.m_ofn.lpstrDefExt       = "MPG";
        //dlg.m_ofn.Flags             = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT  | OFN_ALLOWMULTISELECT;int iReturn=dlg.DoModal();if(iReturn == IDCANCEL)   {
    //如果选择了取消返回
    return;   }
    if(iReturn ==  IDOK)
       {
    //如果选择了OK
    POSITION pos = dlg.GetStartPosition();
    while (pos != NULL)
    {
    CString strtemp;
    strtemp=dlg.GetNextPathName(pos);
    //写视频文件名
    int i = ItemNumber;
    InsertItem(i,strtemp);
    //表项个数加1
    ItemNumber+=1;
    }
       }}