HANDLE: INVALID_HANDLE_VALUE vs NULL

原创 2012年03月28日 22:03:16
#include "stdafx.h"
#include <Windows.h>
#include <iostream>


using namespace std;


int _tmain(int argc, _TCHAR* argv[])
{
	HANDLE m_hCom = CreateFile(_T("COM3"),GENERIC_READ|GENERIC_WRITE,0,NULL
		,OPEN_EXISTING,FILE_FLAG_OVERLAPPED,0); //Open Port: COM1


	if(m_hCom == INVALID_HANDLE_VALUE)
		printf("%d\n",INVALID_HANDLE_VALUE);
	else
	{
		CloseHandle(m_hCom);
		m_hCom = INVALID_HANDLE_VALUE;
	}

	return 0;
}


1. HANDLE 类型为 void * 无类型指针

2. CreateFile如果成功,HANDLE 为合法句柄,并占有一个内核资源,进行if判断时和TRUE一样; 如果失败,则返回一个INVALID_HANDLE_VALUE ( vs2008下为0xfffffffff ) 实际值等于-1

3. CloseHandle执行后,可以释放句柄m_hCom的内核资源,比如串口操作时就是关闭串口的作用;且m_hCom的值仍然不变,为一个“合法”的地址形式,只是指向的资源已经被释放;此时应该立即赋值-1,如:m_hCom = INVALID_HANDLE_VALUE;


INVALID_HANDLE_VALUE 与 NULL

[cpp] view plaincopyprint? #include "stdafx.h"   #include    #include          u...
  • dongchongyang
  • dongchongyang
  • 2013年07月30日 16:52
  • 2640

Handle模板二 - handle管理

/////////////////////////////////////////////////////////////////////////////// // atlmiscutil.h #...
  • deerleaper
  • deerleaper
  • 2014年01月08日 23:03
  • 414

HANDLE: INVALID_HANDLE_VALUE vs NULL

#include "stdafx.h" #include #include using namespace std; int _tmain(int argc, _TCHAR* argv[]...
  • scorpiuseol
  • scorpiuseol
  • 2012年03月28日 22:03
  • 4517

文件加密CryptEncrypt和导出密钥CryptExportKey学习笔记

刚刚接触C++,使用CryptEncrypt来对一个文件进行加密,代码都是MSDN上的,一开始使用起来比价困难,这里对代码解读和分享一下。 #include #include #include ...
  • u011311291
  • u011311291
  • 2017年09月01日 16:25
  • 137

WINDOWS HANDLE null INVALID_HANDLE_VALUE

输出: 1 not null 2 not null 因此CloseHandle后不能用 if ( handle ) void handle_null_test() ...
  • kelsel
  • kelsel
  • 2016年10月08日 17:07
  • 143

KERNEL BUG: unable to handle kernel NULL pointer dereference at 00000004

出现kenel BUG信息: BUG: unable to handle kernel NULL pointer dereference at 00000004 IP: [] firmware_loa...
  • jiaocj223
  • jiaocj223
  • 2013年07月22日 19:06
  • 5550

CreateFile打开串口失败,返回INVALID_HANDLE_VALUE

近来在做串口方面的程序,使用CreateFile打开串口,却一直失败,代码如下: HANDLE hCom=CreateFile("COM10",GENERIC_READ|GENERIC_WRITE,0...
  • celte
  • celte
  • 2013年08月09日 13:42
  • 3360

HANDLE是什么意思(怎么用)

HANDLE是什么意思(怎么用) 转载地址:http://baike.baidu.com/link?url=q67cgoix-lNnh5UILPXlNL3WBYLuufqPacZZHyvYwQzo4...
  • lyc_daniel
  • lyc_daniel
  • 2013年09月10日 14:32
  • 2271

驱动开发误用指针错误:Unable to handle kernel NULL pointer dereference at virtual address

前言         今天,来说说驱动开发中误用指针导致的错误:Unable to handle kernel NULL pointer dereference at virtual address...
  • zengxianyang
  • zengxianyang
  • 2016年02月16日 19:28
  • 7781

Unable to handle kernel NULL pointer dereference.

这几天调试Wlan遇到的错误,有必要记录一下.... Thu Jan 1 00:00:59 UTC 1970 rt73 driver version - 1.0.4.0 rt73 drive...
  • lucien_cc
  • lucien_cc
  • 2012年05月12日 12:01
  • 3318
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HANDLE: INVALID_HANDLE_VALUE vs NULL
举报原因:
原因补充:

(最多只允许输入30个字)