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
  • 相关阅读:
    egg-sequelize-ts 插件
    从理解webpack到配置
    jstree 学习
    谈谈对原型链的理解
    CSS 水平居中/布局 垂直居中 (月经问题)
    图片自然翻转并切换图片
    Javascript 高阶函数等
    django中related_name的作用和用法
    pycharm新建django项目,报错
    关于pycharm 使用sqlite创建数据库表,创建模型后,表找不到或者不显示。
  • 原文地址:https://www.cnblogs.com/JJBox/p/12535975.html
Copyright © 2011-2022 走看看