debug assest failed File:f:\dd\vctools\vc7libs\ship\atlmfc\include\afxwin1.inl解决办法

照着网上写了个 打开BMP 图片程序,弹出File:f:\dd\vctools\vc7libs\ship\atlmfc\include\afxwin1.inl
File:f:\dd\vctools\vc7libs\ship\atlmfc\include\afxwin1.inl
 Line:255


For information on how your program can cause an assertion
 failure,see the Visual C++ documentation on asserts.

(Press Retry debug the application)
程序照着http://hi.baidu.com/krispan/blog/item/39caa5291f9ee7f898250a23.html写的

我的机子上没有f盘啊,那是一个物理光驱的盘符,我很久没把物理光驱装上了(早于装VS2008),都在用虚拟光驱,虚拟光驱盘符是G盘,这个是什么问题呢?
初学者,见谅

------解决方案--------------------------------------------------------
这个F盘是微软编译PDB文件的时候用的机器上的路径。
你第一次看见这个对话框的时候,需要在这里选择你的VC安装目录下的MFC源文件所在目录
------解决方案--------------------------------------------------------
点“重试”,然后看call stack,或者单步调试
探讨
它下面有三个按钮中止、重试、忽略,点击重试、忽略 程序就继续下去了,功能也正常,点击中止就跳出了
没有选择VC安装目录下的MFC源文件所在目录的按钮啊,每次运行的时候都要点一下重试或者忽略才能继续下去啊

引用:

这个F盘是微软编译PDB文件的时候用的机器上的路径。
你第一次看见这个对话框的时候,需要在这里选择你的VC安装目录下的MFC源文件所在目……

------解决方案--------------------------------------------------------
C/C++ code
void CRiftGameProDlg::TestCfile()
{
    //
    CFileDialog fileDlg(TRUE,_T("*.txt"),_T("*.txt"),NULL,_T("文本文件(*.txt)|*.txt||"),this);
    //fileDlg.m_ofn.Flags |= OFN_FILEMUSTEXIST;
    //fileDlg.m_ofn.lpstrFileTitle = _T("通过内存映射文件读取数据");
    if (fileDlg.DoModal() == IDOK)
    {
        //创建文件对象
        HANDLE hFile = CreateFile(fileDlg.GetPathName(),GENERIC_READ|GENERIC_WRITE,0,NULL,
            OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
        if (hFile == INVALID_HANDLE_VALUE)
        {
            TRACE ("创建文件对象失败,错误代码:%d\r\n",GetLastError());
            return;
        }
        //创建文件映射对象
        HANDLE hFileMap = CreateFileMapping(hFile,NULL,PAGE_READWRITE,0,0,NULL);
        if (hFileMap == NULL)
        {
            TRACE("创建文件映射对象失败,错误代码:%d\r\n",GetLastError());
            return;
        }
        //得到系统分配颗粒
        SYSTEM_INFO SysInfo;
        GetSystemInfo(&SysInfo);
        DWORD dwGran = SysInfo.dwAllocationGranularity;
        //得到文件尺寸
        DWORD dwFileSizeHigh;
        __int64 qwFileSize = GetFileSize(hFile,&dwFileSizeHigh);
        qwFileSize  |= (((__int64)dwFileSizeHigh)<<32);
        //关闭文件对象
        CloseHandle(hFile);
        //偏移地址
        __int64 qwFileOffset = 0;
        //块大小
        DWORD dwBlockBytes = dwGran;
        while (qwFileSize >0)
        {
         //映射视图
            if (qwFileSize<dwGran)
                dwBlockBytes = (DWORD)(qwFileSize);
                LPBYTE lpbMapAddress = (LPBYTE)MapViewOfFile(hFileMap,FILE_MAP_ALL_ACCESS,(DWORD)(qwFileOffset>>32),(DWORD)(qwFileOffset & 0xFFFFFFFF),dwBlockBytes);
                if (lpbMapAddress == NULL)
                {
                    TRACE("映射文件映射失败,错误代码:%d\r\n",GetLastError());
                    return;
                }
                //对映射的视图碱性访问
                for (DWORD i = 0; i<dwBlockBytes;i++)
                {
                    BYTE temp = *(lpbMapAddress+i);
                }

                //撤销文件映射
                UnmapViewOfFile(lpbMapAddress);
                //修正参数
                qwFileOffset += dwBlockBytes;
                qwFileSize -= dwBlockBytes;
        }
            //关闭文件映射对象句柄
            CloseHandle(hFileMap);
            AfxMessageBox(_T("成功完成对文件的访问"));
    
    }
}
		
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值