windows 句柄

什么是windows句柄 摘要: Windows系统句柄按资源类型可分为内核对象、窗口控件和GDI绘图资源三大类。内核对象句柄(如进程、线程、文件)通用性最强,使用CloseHandle释放;窗口句柄(HWND、HMENU等)需专用API操作和释放;GDI资源(HDC、HPEN等)必须调用DeleteObject避免泄漏。此外还有注册表、套接字等专属句柄。关键注意事项包括伪句柄特性、句柄继承机制及泄漏排查方法(通过任务管理器监控句柄数量)。不同句柄类型对应特定API,错误释放会导致系统异常。 阅读详情

    windows中,句柄非常常见。如文件句柄,事件句柄,线程句柄,进程句柄等等。所以今天来介绍一下windows句柄。

一、内核对象

    说到句柄,不得不提到内核对象。内核对象是操作系统内核创建的对象,是一个数据结构,且这个数据结构只能由操作系统内核访问,应用程序无法直接访问这些数据结构。为了强化这种访问安全性,windows使用句柄来间接访问内核对象。windows也使用句柄来访问GDI对象。

二、句柄

    每个进程都有一个句柄表,句柄索引号代表句柄值(不完全正确,windows对这个值还做了些处理,我们可以暂时这么认为,方便理解)。句柄表中,每一项包含了跟相应内核对象的信息,如指向内核对象的指针,访问掩码等。

    需要注意的是,句柄与进程是强相关的,也就是说,句柄只在所属进程有效,进程A中的句柄h1指向内核对象kobj1,如果在进程B中,句柄h1可能是无效的,也有可能指向的是另一个内核对象kojb2。 另外,也有可能有多个句柄指向同一个内核对象,所以,内核对象使用了计数,当计数减小到0的时候,内核对象才会被销毁。所以,当不需要使用句柄的时候,要及时调用CloseHandle,CloseHandle会给计数-1。当然,在进程退出时,系统会扫描句柄表,自动关闭每一个句柄。

三、利用句柄,进程间共享内核对象

1、父子进程,句柄继承

    在创建内核对象时,可以标记返回的句柄是否可以继承;创建子进程时,给hInheritHandles参数传入TRUE,则系统会将父进程中可以继承的句柄都完整的复制到子进程的句柄表中。

2、为内核对象命名

    (1)可以创建命名的内核对象,但有些内核对象不支持命名。内核对象被创建后,可以通过create/open系列api获取指向同一个内核对象的多个句柄。不过,windows并没有专门的机制来保证名称是唯一的,而且所有对象类型都共用一个命名空间。也就是说,当有一个名为A的Event时,不能再创建一个名为A的File。

    (2)终端服务命名空间

    该空间主要由服务使用。此外,每个客户端session都一个自己的命名空间,回话之间不能相互访问对方的对象。

    一个服务的命名内核对象始终位于全局命名空间中,终端服务,则位于自己的本地命名空间中,如果要强制放入全局命名空间,可以加上“Global\'前缀,也可以通过加上”Local\“来放入本地命名空间。注意,Global和Local都是保留关键字,不应在对象名称中使用。也可以用"session\<当前回话Id>"来作为前缀,且只能用当前回话id。

    (3)专有命名空间

    自定义前缀,并把它当成自己的专有命名空间使用,负责创建内核对象的服务器进程将定义一个边界描述符(boundary descriptor),对命名空间的名称自身进行保护。

3、复制对象句柄

    较少用,必须要两个进程之间共享内核对象(可以通过第三个进程作为媒介),才会使用。


世界坐标系/相机坐标系/图像坐标系 转换 目录一、各坐标系简要介绍二、坐标系转换2.1 世界坐标系转为相机坐标系2.2 相机坐标系转为物理图像坐标系2.3 物理图像坐标系转为图像坐标系2.4 总结2.5 为什么要使用齐次坐标参考文献 一、各坐标系简要介绍 首先介绍数字图像处理领域中的图像坐标系,如上图左图所示,坐标系O_0为图像坐标系,其原点是在图像的左上角,每一个像素通过其所在位置的列数和行数索引 (u,v) 来表示。 另外需要建立图像坐标与物理单位的关系,而后才能将目标的真实世界坐标转换为图像坐标。即建立以物理单位表示的物理图像坐标系(有些文 阅读详情

相关推荐

实战MSP-M0G3507与陶晶驰串口屏的通信协议解析

本文详细解析了MSP-M0G3507微控制器与陶晶驰串口屏的通信协议实现。内容涵盖串口配置、协议帧结构、数据校验机制及ASCII协议实战代码,重点介绍了陶晶驰串口屏的指令集应用和调试技巧,为嵌入式开发提供可靠的串口通信解决方案。

h9j8k7l6m5n的博客 867

获取句柄的详细信息:(原代码)

一、驱动部分extern "C"{#include }#include "ScSysInfo.h"extern "C"{#include "native.h"#include "../TestHandle/ob.h"}#if 1#define dprintf DbgPrint#else#define dprintf#endif#define kprintf DbgPrint#define NT_D

老裴 4409

别再让会议变‘回音壁’:手把手教你调优WebRTC的AEC3回声消除(附实战代码)

本文深入解析WebRTC的AEC3回声消除技术,提供从参数调优到声学环境适配的实战指南。通过诊断回声特征、解剖核心参数(如filter.length_blocks和delay_estimate_smoothing)以及应对特殊场景(如密闭空间与开放办公区),帮助开发者有效解决视频会议中的回声问题,提升语音通信质量。附有实战代码和调试工具,适合需要优化实时通信体验的开发者。

weixin_29220405的博客 172

VC 各种情况下的窗口句柄的获取

<br />AfxGetMainWnd<br /> <br />AfxGetMainWnd获取自身窗口句柄<br />HWND hWnd = AfxGetMainWnd()->m_hWnd;<br /><br />GetTopWindow<br />函数功能:该函数检查与特定父窗口相联的子窗口z序(Z序:垂直屏幕的方向,即叠放次序),并返回在z序顶部的子窗口的句柄。<br />函数原型:HWND GetTopWindow(HWND hWnd);<br />参数:<br />  hWnd:被查序的父窗口的句柄

luheng2006的专栏 6603

BLE蓝牙胎压监测

胎压监测系统新技术

qq_41851841的博客 1255

DL-FWI基础入门培训视频学习1、2

DL-FWI基础知识

shengMio的博客 709

Windows特权句柄利用分析

通过对Windows特权句柄的探究:1.高完整性特权句柄是潜在的可利用对象,在终端防护中值得关注2.对特权句柄的分析可作为恶意提权行为的一种检测手段。

Karka_的博客 451

从Transformer到Mamba:显著性检测领域的计算效率革命(Samba框架深度解析)

本文深入解析了Samba框架在显著性目标检测(Salient Object Detection)领域的创新应用,通过结合Mamba架构的优势,实现了计算效率的革命性提升。Samba框架采用显著性引导的Mamba模块(SGMB)和上下文感知上采样(CAU),有效解决了传统CNN和Transformer的局限性,同时在RGB-D等多模态任务中展现出卓越性能。

mmm90的博客 557

Windows句柄和API函数介绍以及常用的API函数

windows操作系统中所谓句柄是惟一标识某个Windows对象(例如程序实例、窗口、光标、图标、画刷和菜单等)的一个32位无符号整数,句柄是Windows对象的唯一标识符,只有有了句柄,程序才能使用与其对应的Widows对象。Windows程序通常通过调用win32API函数来

7127

AD9361功能介绍和使用

AD9361使用分数分频锁相环(PLL)来产生发射机和接收机本地振荡器(LO)频率和BB PLL。BB PLL 可用于数据转换、数字滤波器和 |/O 端口。PLL的参考时钟可以由外部振荡器或外部晶体(XO)和数字可编程片内可变电容提供,电容微调产生参考时钟频率,XO和微调电容的组合统称为DCXO。有多个天线输入的分集系统。接收链数据首先经过低噪声放大器(LNA),然后是同相(1)和正交(Q)放大器,混频器和频带整形滤波器,可将接收到的信号下变频为基带以进行数字化。时分双工(TDD)和频分双工(FDD)。。。

wangjie36的博客 1万+

传导案例:某医疗仪器传导骚扰整改案例

紫外线光疗仪是一种专业的医疗设备,主要用于治疗银屑病、白癜风等皮肤疾病。该设备采用物理治疗技术,通过特定波长的紫外线照射人体来达到治疗效果。自1984年窄谱中波紫外线(NB-UVB)应用于临床以来,该技术已成为治疗早期蕈样肉芽肿(MF)的有效方法之一。作为二类医疗器械,紫外线光疗仪必须符合严格的电磁兼容性(EMC)标准,这不仅关系到设备自身的稳定运行,更关乎患者的使用安全和治疗效果。紫外线光疗仪传导骚扰整改案例充分展示了系统性EMC设计的重要性。

m0_56451176的博客 340

深入了解Windows句柄到底是什么

总是有新入门的Windows程序员问我Windows的句柄到底是什么,我说你把它看做一种类似指针的标识就行了,但是显然这一答案不能让他们满意,然后我说去问问度娘吧,他们说不行网上的说法太多还难以理解。今天比较闲,我上网查了查,光是百度百科词条“句柄”中就有好几种说法,很多叙述还是错误的,天知道这些误人子弟的人是想干什么。 这篇文章中我们来详细探讨一下Windows中的句柄到底是什么,希望可以解开广大程序员的心中疑惑。

文洲的专栏 10万+

S7-200 SMART PLC 数字量阀门控制功能块(FB)汇总

S7-200 SMART PLC功能块的各种写法可以查看专栏的其它文章,链接地址如下:S7-200 SMART PLC 子程序功能块(阀门控制)_RXXW_Dor的博客-优快云博客_plc控制阀门开关程序由于S7-200 SMARTPLC的子程序种种功能、容量限制,有时想实现多次调用的子程序可能并不是太容易,这篇博客还是给出一些推荐写法,供大家参看。

RXXW_Dor的博客 3999

Windows GDI句柄分析

我们知道,Windows 的GDI是一个单独的子系统,这个子系统中包含两个重要的东西是CSRSS进程和WIN32K驱动,由这两个模块实现所有的绘图操作,我们先看一下其中的核心之一就是WIN32K,这个模块加载的时候会调用。主要有一个好处就是Windows在应用层的时候就可以通过句柄找到GDI对象,而不需要切换到内核中,我们知道切换到内核是需要一定的资源消耗的,因此使用这种方式可以提升一定的速度。不同的进程,对应的GDI对象的句柄是一样的,因此GDI对象不同于内核对象,完全可以跨进程使用。

xsinlink的博客 1300

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Windows句柄表学习笔记 —— 句柄表&全局句柄表

Windows句柄表学习笔记 —— 句柄表&全局句柄表前言句柄表实验一:在WinDbg中查看句柄表第一步:打开一个Win32窗口程序第二步:编译并运行以下代码第三步:查看运行结果第四步:在WinDbg中定位句柄表句柄表结构实验二:在WinDbg中查看并分析句柄表结构第一步:打开一个Win32窗口程序第二步:编译以下代码并运行第三步:查看运行结果第四步:在WinDbg中定位最后一个句柄第五步...

lzyddf的博客 4844

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Windows句柄表格式

原文发表于百度空间,2009-02-28 句柄是Windows对象管理中引入的一个东西,它的实际意义是对象在句柄表中的索引。Windows2000使用的是固定的三层句柄表,而WindowsXP和Windows2003都是使用的动态可扩展的三层句柄表,这是一种很优秀的结构,易扩展,且查找迅速,值得学习。通常情况下每个进程的句柄表都是一级表,当句柄数超过一级表的容量时,就会扩展为二级表,此时二级表中放...

xlaomlng的博客 600

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Windows句柄剖析

Windows句柄的前生今世:句柄剖析

zhangchuan7758的博客 5025

基于Windows核心编程--句柄是什么?

什么是句柄? 句柄也就是在系统中指向某个控件或对象的唯一指针,系统可以通过这个句柄与所对应的空间或对象交互(控制它)。控件或对象与句柄的关系就好比电视机和遥控器,通过遥控器来控制电视机一样。 Windows环境中有很多对象,诸如窗口、画笔等等,可以通过API函数以不同的形式对这些对象进行操作。为此,必须以某种方法对这些对象进行标识,并把它们以参数的形式传递给函数。Windows用一个32位整数对各种对象进行标识,这就是句柄。也就是说句柄是一个对象的标识符。

小L的博客 1148

深入探讨windows系统中句柄概念

设备句柄(Device Handle)是Windows操作系统用来标识和访问各种系统资源的整数值。它相当于一个"令牌"或"引用",应用程序通过这个句柄来操作对应的设备或资源。句柄抽象层:应用程序通过句柄间接访问内核对象权限分离:用户模式代码无法直接访问内核内存系统调用门铃:通过特定的CPU指令(syscall/sysenter)切换到内核模式对象引用计数:确保对象在使用期间不会被意外释放安全验证:每次访问都经过严格的安全检查资源配额:防止单个进程耗尽系统资源。

lza_csdn2019的博客 1133

探索Windows内核系列——句柄,利用句柄进行进程保护

探索Windows内核系列——句柄,利用句柄进行进程保护

sunjiaoya的博客 1852

Windows中的句柄(handle)

1.句柄是什么? 在windows中,句柄是和对象一一对应的32位无符号整数值。对象可以映射到唯一的句柄,句柄也可以映射到唯一的对象。2.为什么我们需要句柄? 更准确地说,是windows需要句柄。windows需要向程序员提供必要地编程接口,在这些接口中,允许程序员访问、创建和销毁对象。但是,出于封装地考虑,windows并不想向程序员返回指针。指针包含了太多的信息。首先指针给出了对象存...

weixin_34185320的博客 1479

windows编程 句柄是什么

我是属于刨根问底型的,老师也不讲windows变成是什么直接就让我们开始做题了,句柄到底也不到那个是什么,现转载,再说吧。 ***************************************************************************************************************************************

bjtu_dubing的博客 431

windows句柄

windows句柄,其实是在说这么一个类型: HANDLE,在windows.h里面,是这样定义的:LPVOID,其实就是一个void*。对于很多新手来说,句柄这个概念有点难以理解。想要真正了解句柄,你必须首先要了解内核对象。不了解内核对象而空谈句柄,没有任何的意义。windows内核对象是由操作系统内核分配的一块内存(储存着对象的相关信息), 这段内存只能由内核访问和管理。  

日知录 795

c语言windows编程句柄,HANDLE句柄(windows编程)

首先什么是句柄?(理解了句柄,也就知道了句柄和指针的区别了)所谓句柄实际上是一个数据,是一个Long(整长型)的数据。句柄是WONDOWS用来标识被应用程序所建立或使用的对象的唯一整数,WINDOWS使用各种各样的句柄标识诸如应用程序实例,窗口,控制,位图,GDI对象等等。WINDOWS句柄有点象C语言中的文件句柄。从上面的定义中的我们可以看到,句柄是一个标识符,是拿来标识对象或者项目的,它就象...

weixin_30077373的博客 1900

Windows句柄

图解说明——究竟什么是Windows句柄 参考资料:http://blog.youkuaiyun.com/newjerryj/article/details/4383701           http://www.cnblogs.com/yellowyu/archive/2009/06/07/1497910....

luozhenjie123的博客 265
上一篇: windows 消息循环(二)
下一篇: windows 进程
byte4096
博客等级 码龄12年 0粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值