- 浏览: 373436 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (335)
- C++ (190)
- 设计模式 (43)
- 数据库技术 (5)
- 网络编程 (11)
- 自动化测试 (6)
- Linux (13)
- OpenSSL (10)
- MS Crypt API (5)
- SCM (2)
- English (4)
- Android (10)
- EMV规范 (1)
- Saturn Platform (0)
- C (10)
- SQL (2)
- ASP.NET (3)
- 英语口语学习 (3)
- 调试工具 (21)
- 编译技术 (5)
- UML (1)
- 项目管理 (5)
- 敏捷开发 (2)
- Http Server (6)
- 代码审查、代码分析 (5)
- 面试基础 (10)
- 重点知识 (16)
- STL (6)
- Efficient C++资料 (8)
- 数据结构和算法 (7)
- 读书笔记 (0)
- 开源项目 (4)
- 多线程 (2)
- Console App (6)
- 个人开源项目 (4)
- IBM DevelopWorks (4)
- Java (16)
- 内存泄漏相关调试和检测 (13)
- 软件测试相关技术 (2)
- C# (11)
- Apple Related (1)
- 软件测试和管理 (2)
- EMV (1)
- Python (1)
- Node.js (6)
- JavaScript (5)
- VUE (1)
- Frontend (1)
- Backend (4)
- RESTful API (3)
- Firebase (3)
最新评论
-
u013189503:
来个密码吧
[C++][Logging] 项目中写日志模块的实现 -
wyf_vc:
来个密码啊!!
[C++][Logging] 项目中写日志模块的实现
转自
http://blog.csdn.net/anycell/article/details/7343125
今天看《Windows核心编程》无意间看到内核对象创建函数返回值的一段内容。以前写程序判断句柄无效的时候没有多想,经常用NULL,有时也用INVALID_HANDLE_VALUE。跟我同样犯迷糊的朋友们也要注意了,两者不能混淆的!
如果调用一个函数以便创建内核对象,但是调用失败了,那么返回的句柄值通常是0(NULL )。发生这种情况是因为系统的内存非常短缺,或者 遇到了安全方面的问题。不过有少数函数在运行失败时返回的句柄值是-1 (INVALID_HANDLE_VALUE)。例如,如果CreateFile未能打开指定的文件,那么它将返回INVALID_HANDLE_VALUE ,而不是返回NULL 。当查看创建内核对象的函数返回值时,必须格外小心。特别要注意的是,只有当调用CreateFile函数时,才能将该值与INVALID_HANDLE_VALUE 进行比较 。下面的代码是不正确的:
http://blog.csdn.net/anycell/article/details/7343125
今天看《Windows核心编程》无意间看到内核对象创建函数返回值的一段内容。以前写程序判断句柄无效的时候没有多想,经常用NULL,有时也用INVALID_HANDLE_VALUE。跟我同样犯迷糊的朋友们也要注意了,两者不能混淆的!
如果调用一个函数以便创建内核对象,但是调用失败了,那么返回的句柄值通常是0(NULL )。发生这种情况是因为系统的内存非常短缺,或者 遇到了安全方面的问题。不过有少数函数在运行失败时返回的句柄值是-1 (INVALID_HANDLE_VALUE)。例如,如果CreateFile未能打开指定的文件,那么它将返回INVALID_HANDLE_VALUE ,而不是返回NULL 。当查看创建内核对象的函数返回值时,必须格外小心。特别要注意的是,只有当调用CreateFile函数时,才能将该值与INVALID_HANDLE_VALUE 进行比较 。下面的代码是不正确的:
HANDLE hMutex = CreateMutex(...); if (hMutex == lNVALID_HANDLE_VALUE) { //We will never execute this code because //CreateMutex returns NULL if it fails }
HANDIE hFile = CreateFile(.. ); if (hFile == NULL} { //We will never execute this code because CreateFile //returns lNVALID_HANDLE_VALUE (-1) if it fails. }
发表评论
-
FreeRTOS
2022-03-05 16:31 253Ref https://blog.csdn.net/weix ... -
串口通讯相关
2018-11-02 13:44 417https://bbs.csdn.net/wap/topics ... -
[转]C++验证IP是否可以PING通
2018-10-30 17:54 1346https://www.cnblogs.com/guoyz13 ... -
C++/MFC 換皮膚
2018-10-20 11:05 481https://blog.csdn.net/u01123991 ... -
WinCE 截屏 - C++ 代碼
2018-08-31 09:45 580// this function create a bmp ... -
Android NDK搭建環境
2017-11-27 13:25 593https://www.cnblogs.com/ut2016- ... -
8583协议相关
2017-10-17 13:38 5828583相关资料,整理中... -
Java高级应用之JNI
2017-06-19 09:00 609参考link http://www.cnblogs.com/l ... -
C++实现ping功能
2017-04-18 11:21 2176基础知识 ping的过程是向目的IP发送一个type=8的I ... -
OpenSSL 编译环境搭建
2017-03-27 15:01 9161 安裝VS2008到 c:\Program Files (x ... -
最优非对称加密填充(OAEP)
2017-03-25 14:53 1596OpenSSL命令---rsautl http://blog. ... -
[Platform Builder] 设置SVM OS build Env
2016-11-10 11:39 01 copy one OSDesign Project to ... -
[Windows] System Error Codes(GetLastError )0-----5999
2016-10-26 13:28 1886ERROR_SUCCESS 0 (0x0) T ... -
开源Windows驱动程序框架
2016-09-17 21:35 878转自 http://code.csdn.net/news/28 ... -
c/c++代码中执行cmd命令
2016-09-14 14:50 1926转自 http://blog.csdn.net/slixinx ... -
C#使用C++标准DLL实例(包含callback)
2016-09-11 19:44 1095C++编写标准Win32DLL如下 头文件 /***** ... -
C#调用C++的DLL搜集整理的所有数据类型转换方式
2016-09-09 16:07 974转自 http://www.cnblogs.com/zeroo ... -
WinCE CPU使用率计算 测试工具
2016-09-08 16:14 1006转自 http://blog.csdn.net/jan ... -
switch在C++与C#中的一些差异
2016-09-08 15:19 821参考链接 http://blog.csdn.net/weiwe ... -
C++ 鼠标模拟程序
2016-09-04 12:09 1623转自 http://blog.csdn.net/weixinh ...
相关推荐
然而,在实际应用中,我们可能会遇到一些错误,比如"GL_INVALID_VALUE",这是一个与OpenGL相关的错误,通常表示传递给OpenGL函数的参数值无效。在本DEMO中,这个问题是由于在SeekBar的进度条(progress)设置中使用...
INVALID_USER_KEY(解决方案).md
如果文件被其他进程占用,CreateFile将失败,返回INVALID_HANDLE_VALUE,此时IsFileInUse函数返回True,表示文件正在被使用;反之,如果成功打开,表示文件未被占用。 在实际应用中,还需要考虑到可能的错误处理,...
在Windows操作系统中,STATUS_INVALID_IMAGE_HASH是一个错误代码,表示系统加载的模块(如动态链接库DLL或应用程序EXE)的数字签名不正确,或者是文件被篡改或损坏。这个错误可能会影响到浏览器的正常运行,例如...
删除用户则使用`DROP USER`,但需注意,如果该用户拥有对象,需先将其所有对象删除或转交他人,例如: ```sql DROP USER username CASCADE; ``` 问题二:如何为用户授予和撤销权限? 权限的授予使用`GRANT`命令,如...
- 0x08MT_INVALID_READER_HANDLE指的是无效的读写器句柄,通常是因为初始化未完成或者读写器已被关闭。 - 0x09MT_HARDWARE_ALERT_ERR_BY_HIGN_RETURN_LOSS表示回波过高,可能是因为信号反射问题,需要调整天线位置或...
项目中碰到的,记录一下
if (hThreadHandle == NULL || hThreadHandle == INVALID_HANDLE_VALUE) { // 创建失败,处理错误 } ``` #### 内核对象的句柄与使用计数 - **句柄**:每个内核对象都有一个唯一的句柄,该句柄是进程内部的一个...
程序里面CreateFile函数起了很大的作用,可以用来创建系统设备文件,如果该设备不存在或者被占用,则会返回一个错误 并于INVALID_HANDLE_VALUE 对比,据此可以判断可使用性。详细参见MSDN中的介绍。 如:if (m_hCom ...
invalid_cache.csv
在VC++中,我们可以使用Windows API函数或者MFC(Microsoft Foundation Classes)库来实现串口通信。如果你是在修改别人的代码,那么你可能会遇到以下关键函数: 1. `CreateFile`:这是用来打开一个串口的API函数,...
* GATT_INVALID_HANDLE (0x0001):表明处理无效。 * GATT_READ_NOT_PERMIT (0x0002):表明读取操作不被允许。 * GATT_WRITE_NOT_PERMIT (0x0003):表明写入操作不被允许。 * GATT_INVALID_PDU (0x0004):表明协议...
HDEVINFO device_info_set = INVALID_HANDLE_VALUE; int device_index = 0; HDEVINFO DeviceInfoSet; DeviceInfoSet = SetupDiCreateDeviceInfoList(NULL, NULL); devinfo_data.cbSize = sizeof(SP_DEVINFO_...
创建内核对象时,系统可能返回NULL或INVALID_HANDLE_VALUE,开发者需要正确判断创建是否成功,例如,通过检查句柄是否为NULL或INVALID_HANDLE_VALUE。 创建不同的内核对象,如线程、互斥量、信号量和事件,通常涉及...
( STATUS_INVALID_IMAGE_HASH )” 原因: Google在79版本(2019年12月20号左右)的更新中又重新启用了Renderer Code Integrity Protection(渲染器代码完整性保护),会阻止签名不是谷歌和微软的模块加载。该功能...
当Visual Studio报错“invalid handle”时,意味着程序尝试使用的句柄(handle)无效。在Windows操作系统中,句柄是用于标识进程、线程、文件、窗口等对象的标识符。当句柄被错误地创建、使用或释放时,就可能导致...
在C++编程中,`std::invalid_argument` 是一个异常类,用于表示当函数或方法接收到不合法或无效的参数时抛出的错误。这个类是`std::logic_error` 的子类,而`std::logic_error` 又是`std::exception` 的子类。`std::...
- 有时需要将枚举值转换为字符串,以便在调试时输出更易理解的信息,这可以通过查询OpenGL的字符串扩展或者第三方库实现。 5. **OpenGL枚举与C++枚举的区别**: - OpenGL枚举是库定义的,而C++枚举是语言级别的,...
* MCIERR_INVALID_FILE:无效的文件 * MCIERR_NULL_PARAMETER_BLOCK:空参数块 * MCIERR_UNNAMED_RESOURCE:未命名的资源 * MCIERR_NEW_REQUIRES_ALIAS:新资源需要别名 * MCIERR_NOTIFY_ON_AUTO_OPEN:自动打开时...
标题中的"STATUS-INVALID-IMAGE-HASH"是一个错误代码,通常与浏览器遇到的不安全或损坏的图像资源有关。这个错误可能在Chrome和Edge等浏览器中出现,导致浏览器崩溃或无法正常显示网页内容。让我们深入了解一下这个...