windows函数调用出错时,可以通过方法去查询出错根源在哪里。

 #include <Windows.h>
#include <iostream> using namespace std; int main(){
HANDLE hf = CreateFile(TEXT("c:\\test"),,,NULL,OPEN_EXISTING,,NULL);
cout<<(int)hf<<endl;
if((int)hf != ){
  int res = GetLastError();
  cout<<res<<endl;
}
system("pause");
return ;
}

错误号是2,错误信息可以通过vs2010的工具->错误查找 进行查找。

也可以在调试debug时,输入$err,hr,然后在watch窗口下,查看出错原因。

用户也可以自定义错误。

void f(){
SetLastError();
return;
}

错误号码可以使用微软的,也可以自定义。

0-31位,需要在29位设置为1,这样就是用户自己定义的错误。

比如自己定义的错误:不和微软产生冲突。

SetLastError(0xf111);

windows核心编程01_错误处理的更多相关文章

  1. 《Windows核心编程》第一讲 对程序错误的处理

    一个Windows函数通常都有一个有意义的返回值类型,它标志着这个函数的运行状态,即函数运行成功与否.windows常用的函数类型如下图: 从系统内部来讲,当一个Windows函数检测到一个错误时,它 ...

  2. Windows核心编程第一章.错误处理

    Windows核心编程第一章,错误处理. 一丶错误处理 1.核心编程学习总结 不管是做逆向,开始做开发.在Windows下.你都需要看一下核心编程这本书.这本书确实写得很好.所以自己在学习这本书的同时 ...

  3. windows核心编程---第二章 字符和字符串处理

        使用vc编程时项目-->属性-->常规栏下我们可以设置项目字符集合,它可以是ANSI(多字节)字符集,也可以是unicode字符集.一般情况下说Unicode都是指UTF-16.也 ...

  4. 【windows核心编程】 第八章 用户模式下的线程同步

    Windows核心编程 第八章 用户模式下的线程同步 1. 线程之间通信发生在以下两种情况: ①    需要让多个线程同时访问一个共享资源,同时不能破坏资源的完整性 ②    一个线程需要通知其他线程 ...

  5. 《windows核心编程系列》二谈谈ANSI和Unicode字符集 .

    http://blog.csdn.net/ithzhang/article/details/7916732转载请注明出处!! 第二章:字符和字符串处理 使用vc编程时项目-->属性-->常 ...

  6. 《windows核心编程系列》十八谈谈windows钩子

    windows应用程序是基于消息驱动的.各种应用程序对各种消息作出响应从而实现各种功能. windows钩子是windows消息处理机制的一个监视点,通过安装钩子能够达到监视指定窗体某种类型的消息的功 ...

  7. 《Windows核心编程》读书笔记 上

    [C++]<Windows核心编程>读书笔记 这篇笔记是我在读<Windows核心编程>第5版时做的记录和总结(部分章节是第4版的书),没有摘抄原句,包含了很多我个人的思考和对 ...

  8. C++Windows核心编程读书笔记

    转自:http://www.makaidong.com/%E5%8D%9A%E5%AE%A2%E5%9B%AD%E6%96%87/71405.shtml "C++Windows核心编程读书笔 ...

  9. windows核心编程 DLL技术 【转】

    注:本文章转载于网络,源地址为:http://blog.csdn.net/ithzhang/article/details/7051558 本篇文章将介绍DLL显式链接的过程和模块基地址重定位及模块绑 ...

随机推荐

  1. 复制表结构和数据SQL语句(转)

    http://www.cnblogs.com/zhengxu/articles/2206894.html 1.复制表结构及数据到新表 CREATE TABLE 新表 SELECT * FROM 旧表 ...

  2. CEF3编译

    要使用CEF3首先就要编译 下载网址为http://opensource.spotify.com/cefbuilds/index.html#windows64_builds 如果下载不动 可以用我上传 ...

  3. 软件结构B/S和C/S

    C/S(Client  Server)结构的软件: 比如: QQ. 极品飞车. 飞信 . 迅雷 缺点:更新的时候需要用户下载更新包然后再安装,程序员则需要开发客户端与服务端. 优点: 减轻服务端的压力 ...

  4. Switch 开关

    表示两种相互对立的状态间的切换,多用于触发「开/关」. 基本用法 绑定v-model到一个Boolean类型的变量.可以使用active-color属性与inactive-color属性来设置开关的背 ...

  5. prism 4 模块配置 管理

    本章导读: 第四章讲述了模块化应用程序开发中模块的生命周期,生成方法,实例引用的存活时间等关键内容,和经常会应用到的包含定义模块在内的7种场景(以Unity为例,也说明了MEF与Unity中可能不同的 ...

  6. mysql的性能优化简介

    mysql性能下降的原因 sql语句本身有问题,或没建索引 索引失效,索引失效的原因本文后面会叙述 关联了过多的表,可能是前期设计缺陷,或者太奇葩的需求 服务器调优及参数设置,例如缓冲.线程等 mys ...

  7. 阶段3 1.Mybatis_12.Mybatis注解开发_8 mybatis注解开发使用二级缓存

    执行两次都查询userId为57的数据.测试一级缓存 返回true 新建测试类 ,测试二级缓存 二级缓存的配置 首先是全局配置,不配置其实也是可以的.默认就是开启的.这里为了演示配置上 dao类里面进 ...

  8. Elasticsearch 6.2.3版本 同一个index新增type报错 Rejecting mapping update to [website] as the final mapping would have more than 1 type: [blog2, blog]

    在website的index下已经存在一个名为blog的type.想在website下,新增一个名为blog2的type. 执行语句如下: PUT /website/blog2/1 { "t ...

  9. Java SE 8 docs——Static Methods、Instance Methods、Abstract Methods、Concrete Methods和field

    一.Static Methods.Instance Methods.Abstract Methods.Concrete Methods ——Static Methods:静态方法 ——Instance ...

  10. 关于DataFram的.values

    DataFram类型的变量a,设a有n个样本,m个特征,当执行语句b = a.values后,b为(n, m)的ndarray矩阵类型,当执行c = b.ravel()后,c为(n*m,)维行向量