c++学习之:根据GetLastError()返回值获取错误信息-程序员宅基地

技术标签: c/c++  

VC中GetLastError()获取错误信息的使用在VC中编写应用程序时,经常需要涉及到错误处理问题。许多函数调用只用TRUE和FALSE来表明函数的运行结果。一旦出现错误,MSDN中往往会指出请用GetLastError()函数来获得错误原因。
     可问题是,GetLastError()返回的只是一个双字节数值(DWORD)。OH,MY GOD!目前Win32的出错编号已经从0排到11031,而这还不是错误编码的全部。因为错误代码还在不断增加。
     我想没有人愿意自己去查出错编码所对应的错误信息。好在Windows(Windows95以上, Window NT 3.1以上)已经提供了现成的错误信息处理函数:FormatMessage()。 以下是用FormatMessage()得到由GetLastError()返回的出错编码所对应错误信息的示例:
     LPVOID lpMsgBuf;
     FormatMessage(
     FORMAT_MESSAGE_ALLOCATE_BUFFER
    |FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_IGNORE_INSERTS,
     NULL,
     GetLastError(),
     MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
     (LPTSTR) &lpMsgBuf,
     0,
     NULL
     );
     // Process any inserts in lpMsgBuf.
     // ...
     // Display the string.
     MessageBox(NULL,(LPCTSTR)lpMsgBuf, _T("Error"), MB_OK | MB_ICONINFORMATION );
     // Free the buffer.
     LocalFree( lpMsgBuf );
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_33907511/article/details/86462022

智能推荐

小红书无货源开店可靠吗?_小红书开店无货源靠谱吗-程序员宅基地

文章浏览阅读496次,点赞9次,收藏8次。无货源,顾名思义就是不需要进货囤货,在小红书开一个店铺,把1688等货源渠道的商品上架到小红书店铺里,并以进货价的两倍,甚至三倍进行销售,从而获取差价。小红书无货源开店是可靠的!小红书是电商平台,比较靠谱的,无论是有货源、无货源开店卖货都是可靠的,有货源开店是企业店,自己有生产能力的企业。但在1688上是36元,拼多多是49.9元,假设他是在1688上拿货,一单能赚34元,出了641单,光这一个品就赚了2.1W+净利润!前期只要选品,每天批量铺货,发笔记,坚持下去,不断优化细节,内容,标题,封面等等。_小红书开店无货源靠谱吗

《即时消息系统-IM核心技术》_im系统消息-程序员宅基地

文章浏览阅读884次,点赞19次,收藏21次。IM 系统核心技术_im系统消息

全国计算机等级三级Linux应用与开发技术考试-第8章-存储管理-练习题-程序员宅基地

文章浏览阅读1k次,点赞23次,收藏19次。还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料!【完整版领取方式在文末!!

Linux 基础介绍-基础命令_:实现通过命令行界面接收用户的输入,执行用户输入的命令,判断命令是否有效,支持管-程序员宅基地

文章浏览阅读758次。对 linux 做一个简单的介绍,并介绍一些常用的 linux 概念和命令,方便遗忘查询!_:实现通过命令行界面接收用户的输入,执行用户输入的命令,判断命令是否有效,支持管

管理口地址 ibm_有关IBM最新的SALSA技术信息汇总-程序员宅基地

文章浏览阅读191次。最近看到一篇报道,https://tech.sina.com.cn/roll/2020-07-30/doc-iivhvpwx8202656.shtml?cre=tianyi&mod=pcpager_tech&loc=29&r=9&rfunc=14&tj=none&tr=9从我的印象里,这是一个相当夸张的数据,普通标盘的读latency现在基..._ibm的sa系统

apache-程序员宅基地

文章浏览阅读816次,点赞20次,收藏20次。该模式是由线程来监听客户的连接。在上面的示例中,错误日志会被记录在 /var/log/apache2/error.log,而访问日志则会被记录在 /var/log/apache2/access.log,采用了 combined 格式。在上面的示例中,所有访问 http://www.example.com 的请求都会被重定向到 https://www.example.com。值得注意的是,为了确保安全性,建议定期审查 Apache 的配置文件,并采取必要的安全措施,比如限制目录访问权限、禁用不必要的模块等。

随便推点

电子电路仿真软件:数字电路教学的得力助手-程序员宅基地

文章浏览阅读508次,点赞10次,收藏7次。随着技术的不断进步和应用领域的不断拓展,电子电路仿真软件将在数字电路教学中发挥更加重要的作用。电子电路仿真软件通过模拟真实的电路环境,让学生在计算机上就能进行电路设计与实验,这既降低了教学成本,又提升了实验的安全性和效率。增强实践能力:仿真软件为学生提供了一个虚拟的实验环境,让他们可以在计算机上进行电路设计和实验,从而增强他们的实践能力。、Protues等流行的电子电路仿真软件,均提供了丰富的数字电路元件库和强大的仿真功能,非常适合用于数字电路教学。三、电子电路仿真软件在数字电路教学中的应用方法。

Scrapy 之中间件(Middleware)_scrapy middleware return none, response or request-程序员宅基地

文章浏览阅读7k次,点赞5次,收藏26次。Scrapy 结构概述:一、下载器中间件(Downloader Middleware)如上图标号4、5处所示,下载器中间件用于处理scrapy的request和response的钩子框架,如在request中设置代理ip,header等,检测response的HTTP响应码等。scrapy已经自带来一堆下载器中间件。{ 'scrapy.downloadermiddlewares...._scrapy middleware return none, response or request, got generator

Android应用内设置多语言,可随系统语言改变而改变,也可设置app为固定语言不受系统语言影响_安卓app 默认都可以跟随系统语言吗-程序员宅基地

文章浏览阅读9.2k次,点赞6次,收藏26次。转载请标明出处: https://blog.csdn.net/m0_38074457/article/details/84993366,本文出自:【陈少华的博客】一、效果图https://github.com/hnsycsxhzcsh/MultiLanguage/blob/master/myres/multilanguage.gif二、实现原理1、Application的onC..._安卓app 默认都可以跟随系统语言吗

2024Android常见面试题分享,进大厂必看,安卓软件开发面试题-程序员宅基地

文章浏览阅读626次,点赞21次,收藏16次。都说三年是程序员的一个坎,能否晋升或者提高自己的核心竞争力,这几年就十分关键。技术发展的这么快,从哪些方面开始学习,才能达到高级工程师水平,最后进阶到Android架构师/技术专家?我总结了这 5大块;我搜集整理过这几年阿里,以及腾讯,字节跳动,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 PDF(实际上比预期多花了不少精力),包含知识脉络 + 分支细节。Java语言与原理;大厂,小厂。Android面试先看你熟不熟悉Java语言高级UI与自定义view。

Python实现APP自动化发微信群消息。这才是内卷的极致。-程序员宅基地

文章浏览阅读789次,点赞9次,收藏10次。然后,利用 FastAPI 编写获取新闻早报的 API,部署到云服务器上(这里以 CentOS 为例)然后,在主线程中启动一个新的线程,调用 API 接口,获取数据后将数据发送出去。//注意:为了保证耗电低,设置睡眠(10s无操作)# 日志目录:/news_api.log。text(“微信”).waitFor()text(“发送”).click()//支持Android7.0+//API调用获取新闻数据。log(“发送成功!//如果休眠,唤醒设备。//点击进入到聊天界面。//发送信息给微信群。

18.17 U-Boot+内核移植-程序员宅基地

文章浏览阅读268次。18.17.1 移植U-Boot-2012.04.081.下载、建立source insight工程、编译、烧写、如果无运行分析原因。$ tar xif u-boot-2012.04.01.tar.bz2$ cd u-boot-2012.04.01$ make smdk2410_config$ makeERROR【错误原因:gcc版本低】$ arm-linux-gc..._18.889u889.work/html