VC++实现通过API来查看程序错误信息的方法
本文实例介绍了VC++通过API查看错误信息的方法,可以在遇到错误的时候,将显示出错信息并退出处理,具体的实现代码如下:
if((m_hBitMap=(HBITMAP)::LoadImage(NULL,filepath,IMAGE_BITMAP,0,0,LR_DEFAULTSIZE|LR_LOADFROMFILE))==NULL) { LPVOID lpMsgBuf; DWORD dw = ::GetLastError(); FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, dw, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)&lpMsgBuf, 0, NULL ); //显示出错信息并退出处理程序 ::MessageBox(NULL,(LPCTSTR)lpMsgBuf,TEXT("ERROR"),MB_ICONERROR); LocalFree(lpMsgBuf); return; } if((m_hBitMap=(HBITMAP)::LoadImage(NULL,filepath,IMAGE_BITMAP,0,0,LR_DEFAULTSIZE|LR_LOADFROMFILE))==NULL) { LPVOID lpMsgBuf; DWORD dw = ::GetLastError(); FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, dw, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)&lpMsgBuf, 0, NULL ); //显示错误信息并退出处理进程 ::MessageBox(NULL,(LPCTSTR)lpMsgBuf,TEXT("ERROR"),MB_ICONERROR); LocalFree(lpMsgBuf); return;
感兴趣的朋友可以在项目开发中测试一下效果,希望对大家有所帮助。
相关推荐
-
基于C++中sprintf的错误总结详解
sprintf 是个变参函数,使用时经常出问题,而且只要出问题通常就是能导致程序崩溃的内存访问错误.下面对sprintf 常出错误问题进行简单的总结: 1.缓冲区溢出:第一个参数的长度太短了,解决办法:将第一个参数的长度扩大.打印字符串时,尽量使用"%.ns"的形式指定最大字符数char buf[5];sprintf(buf, ":%d", 3246);printf("buf is %s\n", buf); 将buf修改为char buf[6]
-
C++编译器无法捕捉到的8种错误实例分析
本文实例分析了C++编译器无法捕捉到的8种错误,分享给大家供大家参考之用.有助于深入理解C++运行原理,具体分析如下: 众所周知,C++是一种复杂的编程语言,其中充满了各种微妙的陷阱.在C++中几乎有数不清的方式能把事情搞砸.幸运的是,如今的编译器已经足够智能化了,能够检测出相当多的这类编程陷阱并通过编译错误或编译警告来通知程序员.最终,如果处理得当的话,任何编译器能检查到的错误都不会是什么大问题,因为它们在编译时会被捕捉到,并在程序真正运行前得到解决.最坏的情况下,一个编译器能够捕获到的错误只
-
基于C++中常见编译错误的总结详解
在日常编码过程中会遇见各种编译错误,本文对常见的编译错误进行分析总结.(基本的编译错误在这里不列举,后续后持续更新) 1.error c101008a解决方法该错误出现在项目升级过程中会出现,比如说项目从vs2008升级到vs2010.解决办法:在项目上点右键,清理(Clean),重新编译,问题解决 2.error C2252解决方法该错误主要在项目从vs2008升级到vs2010出先.error C2252: an explicit instantiation of a template ca
-
解决VC++编译报错error C2248的方案
在使用诸如:CArray或是 CList等类时,经常会出现此错误 此错误的原因是由于自定义的类的数组项时 有一个操作如 Add() 在这个操作中,实际上需要一个 = 操作,但是这个 =操作在 自定义类中没有实现,于是,程序自动去它的parent 类 也就是 CObject 类去找,但是却找到个这个类的 = 是一个 private 于是就报了这个错误. 知道了原因解决方法自然就有了,那就是在自定义类中 重载操作符 = 重载后 这个错误就没有了. class COptRect : publ
-
基于C++中常见内存错误的总结
在系统开发过程中出现的bug相对而言是比较好解决的,花费在这个上面的调试代价不是很大,但是在系统集成后的bug往往是难以定位的bug(最好方式是打桩,通过打桩可以初步锁定出错的位置,如:进入函数前打印日志,离开时再次打印日志).而这些难以定位的bug基本分为2类:内存错误和并非问题. 1.内存泄露如果在堆栈上分配的内存使用完成后没有释放就会造成内存泄露.少量的内存泄露不至于让程序崩溃,但是大量的内存泄露就会导致内存耗尽,后续内存分配失败,从而导致程序崩溃.长时间运行软件,即使只有一两处泄露,同样
-
c++ mk文件出错Jni调用产生java.lang.UnsatisfiedLinkError错误解决方法
错误为: Android.mk文件 c++的调用方法为: 复制代码 代码如下: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := TestNdk LOCAL_CPP_EXTENSION :=com_ndk_test_JniClient.cpp include $(BUILD_SHARED_LIBRARY) c中的调用方法: 复制代码 代码如下: LOCAL_SRC_FILES := com_ndk_test_Jn
-
VC++实现通过API来查看程序错误信息的方法
本文实例介绍了VC++通过API查看错误信息的方法,可以在遇到错误的时候,将显示出错信息并退出处理,具体的实现代码如下: if((m_hBitMap=(HBITMAP)::LoadImage(NULL,filepath,IMAGE_BITMAP,0,0,LR_DEFAULTSIZE|LR_LOADFROMFILE))==NULL) { LPVOID lpMsgBuf; DWORD dw = ::GetLastError(); FormatMessage( FORMAT_MESSAGE_ALLOC
-
pycham查看程序执行的时间方法
如下所示: import time 首先导入时间模块 在程序开始执行的地方写入: start=time.clock() 在程序末尾写入: end=time.clock() 打印出运行时间: print("final is in ",end-start) 以上这篇pycham查看程序执行的时间方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.
-
jquery.validate提示错误信息位置方法
本文实例讲述了jquery.validate提示错误信息位置方法.分享给大家供大家参考,具体如下: 好长时间没有用jquery.validate.js这个插件了,忘得差不多了.唉,好东西还是要经常拿出来看看的,今天用jquery.validate来做一个小东西,遇到一个问题,就是错误提示信息的位置问题,如果知道的话,很简单.以前遇到过,可是忘了,现在标记一下,将来在忘了,在回过头看看.俗话说的好,好记性不如烂笔头. 举个例子,大家就知道怎么回事了. rules: { name:{ require
-
laravel Validator ajax返回错误信息的方法
将return back()->withErrors($validator->errors())->withInput();替换为下面的代码 $validator = \Validator::make($request->input(), $rules, $messages); if ($validator->fails()) { //将返回错误循环组装成字符串 $arr = []; foreach ($validator->getMessageBag()->to
-
IIS7.5 显示详细错误信息的方法
使用Win7/Win2008/R2操作系统的用户在不断增加,Win7下测试程序时,如果程序出 错,IIS7会提示HTTP Error 500 - Internal Server Error (500 - 内部服务器错误) 的简单错误信息.这些简单信息对应用户来说比较友好,但是却使开发测试人员不清楚具体明确的错误信息.该如何让Win7下显示详细的错误信息呢?可以通过 配置IIS7 以输出详细错误信息. 通过 IIS 配置 1.打开IIS管理器,或按住 WIN + R 打开命令行输入 inetmgr
-
spring boot自定义404错误信息的方法示例
前言 本文将给大家简单介绍一下,在springboot中怎么个性化404错误信息,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 返回json @Bean public EmbeddedServletContainerCustomizer containerCustomizer() { return new EmbeddedServletContainerCustomizer(){ @Override public void customize(ConfigurableEmbe
-
PHP查看SSL证书信息的方法
前言 SSL证书就是遵守 SSL协议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能.以下是通过PHP查看SSL证书信息的示例,有需要的可以看看. 示例代码 <? $str = file_get_contents('2.cer'); print_r(openssl_x509_parse($str)); ?> 注意:证书需要使用base64编码的方式cer证书. 总结 以上就是这篇文章的全部内容,希望对大家的学习或者工作能有一定的帮助,如果疑问大家可
-
事件查看器 特定权限设置未将 COM 服务器应用程序错误的解决方法
问题: 应用程序-特定权限设置未将 COM 服务器应用程序(CLSID 为 {DCBCA92E-7DBE-4EDA-8B7B-3AAEA4DD412B})的本地 启动 权限授予用户 NT AUTHORITY\SYSTEM SID (S-1-5-18).可以使用组件服务管理工具修改此安全权限. 解决: 1.运行REGEDIT.然后搜索DCBCA92E-7DBE-4EDA-8B7B-3AAEA4DD412B,搜索到后看右边的方框内的AppID的REG_SZ字符串值为{B292921D-AF50-40
-
未在本地计算机上注册“Microsoft.Jet.OleDb.4.0”提供程序错误的解决方法
最近在做一个导入Excel数据到数据库的程序出现了如下错误: 运行环境 数据库:SqlServer2008 R2 OS:Windows Server 2008 R2 IIS:IIS7 解决方法 在应用程序对用的应用程序池的高级设置中设置"启用32位应用程序"为"True"
-
基于Linux系统中查看硬件等信息的方法详解
本文介绍下,linux下查看硬件信息的命令与方法,包括主板序列号.cpu信息.内存信息.硬盘信息.网卡信息等.1,主板信息.查看主板的序列号 #使用命令dmidecode | grep -i 'serial number'#查看板卡信息cat /proc/pci 2,cpu信息 #通过/proc文件系统1) cat /proc/cpuinfo#通过查看开机信息2) dmesg | grep -i 'cpu'#3)dmidecode -t processor3,在linux系统中查看硬盘信息,常用
随机推荐
- 基于angular实现三级联动的生日插件
- iOS中指纹识别常见问题汇总
- PHP代码维护,重构变困难的4种原因分析
- 从Android源码剖析Intent查询匹配的实现
- python实现unicode转中文及转换默认编码的方法
- ASP常用函数:CStrIP()
- 浅谈C#互操作的内存溢出问题
- PHP生成月历代码
- windows 7安装ORACLE 10g客户端的方法分享
- jquery图片切换实例分析
- jQuery.get、jQuery.getJSON、jQuery.post无法返回JSON问题的解决方法
- JavaScript的String字符串对象常用操作总结
- PHP进程同步代码实例
- web.xml详解_动力节点Java学院整理
- js实现向右横向滑出的二级菜单效果
- ThinkPHP实现生成和校验验证码功能
- Android图片上传实现预览效果
- php带抄送和密件抄送的邮件发送方法
- c# 获取字符串的字节数的方法
- VC程序设计中CreateProcess用法注意事项