文档章节

Windows错误处理及错误消息文字显示

曾劲松
 曾劲松
发布于 2016/08/07 17:43
字数 203
阅读 15
收藏 0
点赞 0
评论 0

主要用到两个函数 

  1. GetLastError(),返回DWORD是一个32位编号。
  2.  FormatMessage(),将错误代码显示为相应的文本描述。

 Windows函数失败时返回值

0或者NULL,因此可以用  if(!res){ ...} 处理错误

好用的错误通知函数,以以下形式报错:

void my_ShowError(DWORD dwErrNo, LPTSTR lpszFunction)
{ 
    // Retrieve the system error message for the last-error code
    LPVOID lpMsgBuf;
    LPVOID lpDisplayBuf;
    
    FormatMessage(
        FORMAT_MESSAGE_ALLOCATE_BUFFER | 
        FORMAT_MESSAGE_FROM_SYSTEM |
        FORMAT_MESSAGE_IGNORE_INSERTS,
        NULL,
        dwErrNo,//
        MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
        (LPTSTR) &lpMsgBuf,
        0, NULL );

    // Display the error message and exit the process

    lpDisplayBuf = (LPVOID)LocalAlloc(LMEM_ZEROINIT, 
        (lstrlen((LPCTSTR)lpMsgBuf)+lstrlen((LPCTSTR)lpszFunction)+40)*sizeof(TCHAR)); 
    StringCchPrintf((LPTSTR)lpDisplayBuf, 
        LocalSize(lpDisplayBuf) / sizeof(TCHAR),
        TEXT("%s failed with error %d: %s"), 
        lpszFunction, dwErrNo, lpMsgBuf); 
    MessageBox(NULL, (LPCTSTR)lpDisplayBuf, TEXT("Error"), MB_OK); 

    LocalFree(lpMsgBuf);
    LocalFree(lpDisplayBuf);
//    ExitProcess(dwErrNo);
}
DWORD dwErrNo = GetLastError();
if ( NO_ERROR != dwErrNo ){
    ShowError( dwErrNo, "foobar" );
//    return dwErrNo;
}
LPVOID lpMsgBuf; 
FormatMessage( 
    FORMAT_MESSAGE_ALLOCATE_BUFFER | 
    FORMAT_MESSAGE_FROM_SYSTEM | 
    FORMAT_MESSAGE_IGNORE_INSERTS, 
    NULL, 
    GetLastError(), 
    MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
    (LPTSTR) &lpMsgBuf, 
    0, 
    NULL 
    ); 
MessageBox(  (LPCTSTR)lpMsgBuf); 
LocalFree( lpMsgBuf );

 

© 著作权归作者所有

共有 人打赏支持
曾劲松
粉丝 4
博文 198
码字总数 141022
作品 0
武汉
ABBYY FineReader怎么解决出现错误和警告提示的问题

识别结果的质量取决于多种因素,这些因素包括原始文档的质量、结构布局和文档导出参数等。在使用ABBYY FineReader Pro for Mac OCR文字识别软件处理文档的各个阶段,应用程序均可能会显示错误...

ABBYY
2016/12/15
22
0
社交系统ThinkSNS+第4阶段IOS端研发更新发布播报

研发发布版本号:V1.8 发布时间:2018年5月15日星期二 本次发布类型:移动端优化,新增功能发布 社交系统ThinkSNS+更新体验: https://www.pgyer.com/thinksns-plus-enterprise 社交系统Thi...

ThinkSNS账号
05/21
0
0
社群系统ThinkSNS+第4阶段安卓端更新播报

研发发布版本号:V1.8 发布时间:2018年5月15日星期二 本次发布类型:移动端优化,新增功能发布 社交系统ThinkSNS+更新体验: https://www.pgyer.com/thinksns-plus-enterprise 社交系统Thi...

ThinkSNS账号
05/16
0
0
社交系统ThinkSNS+ V1.8.3更新播报

     研发发布版本号:1.8.3   本次版本于2018年7月16日发布   本次发布类型:新增功能、细节调整与优化   社交系统ThinkSNSPlus更新体验:请于官网下载/安装最新版或联系QQ35159...

ThinkSNS账号
07/18
0
0
社交系统ThinkSNS+第4阶段H5端研发更新发布播报

社交系统ThinkSNS+第4阶段于5月15日更新发布,本次社交系统TS+发布类型:移动端优化,新增功能发布,以下为部分内容,详情如下: 一、优化、调整与修复 以下为本期已记录的部分内容 H5端更新...

ThinkSNS账号
05/23
0
0
怎么处理abbyy中的错误代码257

ABBYY PDF Transformer+OCR文字识别软件,是一款可创建、编辑、添加注释以及将PDF文件转换为其他可编辑格式的通用工具,使用该软件时,不少用户发现启动ABBYY PDF Transformer+时,显示程序内...

ABBYY
2016/09/12
16
0
Java打包成exe工具软件exe4j

exe4j是一个帮助你集成Java应用程序到Windows操作环境的java可执行文件生成工具,无论这些应用是用于服务器,还是图形用户界面(GUI)或命令行的应用程序。如果你想在任务管理器中及Windows...

javascript1
2014/06/09
0
0
在 UEFI 模式下安装 ESXi 后主机无法引导

在 UEFI 模式下,在主机上安装 ESXi 后,主机可能无法引导。 问题 在 UEFI 模式下,在主机上安装 ESXi 后重新引导时,重新引导可能失败。出现此问题的同时,还显示一条类似于以下内容的错误消...

mike198711
06/26
0
0
Adobe Flash Player 19 测试版发布:全新 API

Adobe Flash Player最近因为频频曝光安全问题而再次被推上风口浪尖,似乎整个行业都认为它应该死去了,但是显然Adobe不这么认为,还在继续改进着。今天,Flash Player 19的第一个测试版出炉了...

oschina
2015/07/25
1K
18
iOS 的 HUD--ZKProgressHUD

iOS App 上易于使用的 HUD 运行环境 iOS 8.0 + Xcode 8 + Swift 3.0 + 安装 CocoaPods 你可以使用 CocoaPods 安装 ,在你的 中添加: platform :ios, '8.0'use_frameworks! target 'MyApp' d......

Swift王叔叔
2017/03/15
337
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

expect脚本同步文件、expect脚本指定host和要同步的文件、构建文件分发系统

expect脚本同步文件 更改权限 执行脚本 查看执行结果 expect eof需要加上,作用是等脚本命令执行完再进行退出 expect脚本指定host和要同步的文件 更改权限,执行脚本 构建文件分发系统 需求背...

Zhouliang6
39分钟前
1
0
Hive应用:外部分区表

Hive应用:外部分区表 介绍 Hive可以创建外部分区表。创建表的时候,分区要在建表语句中体现。建完之后,你不会在表中看到数据,需要进行分区添加,使用alter语句进行添加。然后数据才会显示...

星汉
49分钟前
3
0
点击Enter登录

1. 效果 2. 实现过程(记得引入jq文件) //6.回车事件 登录 $(function() { document.onkeydown = function(event) { var e = event || window.event || arguments.callee.caller.arguments......

Lucky_Me
54分钟前
1
0
点击菜单内容切换

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .menu{ height: 38px; background-color: #eeeeee; line-height: 38px; } .mao{ ......

南桥北木
今天
1
0
OSChina 周六乱弹 —— 妹子和游戏哪个更好玩

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @andonny :分享唐朝乐队的单曲《国际歌》 《国际歌》- 唐朝乐队 手机党少年们想听歌,请使劲儿戳(这里) @举个栗子- :日常祈雨 邪恶的大祭...

小小编辑
今天
572
6
流利阅读笔记32-20180721待学习

“人工智能”造假:只有人工,没有智能 Lala 2018-07-21 1.今日导读 当今社会,擅长单个方面的人工智能已经盛行,手机借助 AI 智慧防抖技术帮助大家拍出清晰照片,谷歌研发的 AI 助手将可以帮...

aibinxiao
今天
8
0
我的成长记录(一)

今天突然精神抖擞,在我的博客下新开一项分类>成长记录,专门记录每隔一段时间我的一点感悟吧。因为今天才专门花时间新开这样一个分类,所以以前有过的一些感悟没有记录下来,现在已经想不起...

dtqq
今天
1
0
机器学习管理平台 MLFlow

最近工作很忙,博客一直都没有更新。抽时间给大家介绍一下Databrick开源的机器学习管理平台-MLFlow。 谈起Databrick,相信即使是不熟悉机器学习和大数据的工程湿们也都有所了解,它由Spark的...

naughty
今天
17
0
idea tomcat 远程调试

tomcat 配置 编辑文件${tomcat_home}/bin/catalina.sh,在文件开头添加如下代码。    CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7829" Idea端配......

qwfys
今天
2
0
遍历目录下的文件每250M打包一个文件

#!/usr/bin/env python # -*- utf-8 -*- # @Time : 2018/7/20 0020 下午 10:16 # @Author : 陈元 # @Email : abcmeabc@163.com # @file : tarFile.py import os import tarfile import thr......

寻爱的小草
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部