zoukankan      html  css  js  c++  java
  • 学习vc++的第五天--错误查找和处理

    今天学了几个复制,移动..处理文件的函数,然后主要的目的是学会错误处理,了解winApi的错误返回值,还有就是vs的"错误查找"功能.

    课程上面 https://www.bilibili.com/video/av79302998?p=59 中用了vs这样的错误检查的方式,有点意思..

    在课程的 https://www.bilibili.com/video/av79302998?p=60 有说明一下,但是两个视频的处理一个是代码上的,一个是vs上的.

    工具-错误查找,输入错误值.

    注意这个工具若没有的话,要在控制面板上面选择vs,然后安装c++的相关内容,不然只安装net是没有的....

    还有就是工具--导入和导出设置--重置所有设置--Visual C++,选择C++工程的环境!!

     

    首先要知道winapi的错误是存 GetLastError() 的,然后视频上面调用了 @err 在监视里,搜了一下相关的信息,可以配合 $err,hr 来进行监控.

    具体说明: https://blog.csdn.net/qq_16334327/article/details/81838300

    这样就成功可以像视频教程一样监控错误的信息了....

    乱七八糟的学习代码:

    #if false //删除文件 
        bRet = DeleteFile(path);
        if (bRet)
        {
            MessageBox(NULL, _T("删除成功! "), _T("Tip"), MB_OK);
        }
        else
        {
            DWORD dwError = GetLastError(); //放在错误语句的后面..
            MessageBox(NULL, _T("删除失败! "), _T("Iip"), MB_OK);
        }
    #endif // false
    
    
    #if false //拷贝文件
        // 因为C盘权限问题所以拷贝是失败的,以此引发一个错误
        // bRet = CopyFile(path, _T("C:\abc.png"), FALSE);
        bRet = CopyFile(path, _T("D:\桌面\abc.png"), FALSE);
        if (bRet)
        {
            MessageBox(NULL, _T("拷贝成功!"), _T("Tip"), MB_OK);
        }
        else
        {
            DWORD dwError = GetLastError(); //放在错误语句的后面..
            MessageBox(NULL, _T("拷贝失败!"), _T("Tip"), MB_OK);
        }
    #endif // false 
    
    
    #if false //移动文件
        //bRet = MoveFile(path, _T("D:\桌面\abc.png"));
        bRet = MoveFile(_T("D:\桌面\abc.png"), _T("D:\桌面\abc.png"));
        if (bRet)
        {
            MessageBox(NULL, _T("移动成功!"), _T("Tip"), MB_OK);
        }
        else
        {
            DWORD dwError = GetLastError(); //放在错误语句的后面..错误处理例子!!
            if (dwError == ERROR_FILE_NOT_FOUND)
            {
                MessageBox(NULL, _T("文件不存在!"), _T("Tip"), MB_OK);
            }
            else
            {
                MessageBox(NULL, _T("移动失败!"), _T("Tip"), MB_OK);
            }  
        }
    #endif // false
    View Code
  • 相关阅读:
    spring相关记录
    xshell不能连接VM中的ubuntu
    MySQL 获得当前日期时间(以及时间的转换)
    struts2 action获取ajax提交数据中文乱码问题
    Write operations are not allowed in read-only mode (FlushMode.NEVER/
    在Action中以Struts2的方式输出JSON数据
    javascript 对象数组排序
    期待2015
    Mysql 导出数据库和指定表中的数据
    Ajax跨域问题
  • 原文地址:https://www.cnblogs.com/JJBox/p/12535975.html
Copyright © 2011-2022 走看看