GetLastError()的值.doc
### GetLastError() 的值详解 `GetLastError()` 是 Windows 操作系统提供的一种机制,用于获取上一个失败的 API 调用所产生的错误代码。这些错误代码可以帮助开发者定位问题所在,并进行相应的错误处理。下面我们将详细解释从文档中提取的错误代码及其含义。 #### 通用错误 - **0**: 操作成功完成。 - 这个值表示一切正常,没有错误发生。 - **1**: 功能错误。 - 通常意味着函数调用中出现了某种类型的逻辑错误。 - **2**: 系统找不到指定的文件。 - 表示请求的文件不存在。 - **3**: 系统找不到指定的路径。 - 请求的路径不存在。 - **4**: 系统无法打开文件。 - 无法打开指定的文件,可能是因为权限问题或者文件不存在。 - **5**: 拒绝访问。 - 访问被拒绝,通常与权限有关。 - **6**: 句柄无效。 - 使用了无效的句柄尝试访问资源。 - **7**: 存储控制块被损坏。 - 文件系统中的控制块出现损坏。 - **8**: 存储空间不足,无法处理此命令。 - 内存或磁盘空间不足。 - **9**: 存储控制块地址无效。 - 存储控制块的地址无效。 - **10**: 环境错误。 - 环境配置出现问题。 - **11**: 尝试加载格式错误的程序。 - 试图加载的程序格式不正确,例如在32位系统上尝试运行64位程序。 - **12**: 访问码无效。 - 无效的访问权限或访问模式。 - **13**: 数据无效。 - 提供的数据不符合预期格式或范围。 - **14**: 存储器不足,无法完成此操作。 - 缺乏足够的内存资源来执行操作。 - **15**: 系统找不到指定的驱动器。 - 请求的驱动器不存在或未安装。 - **16**: 无法删除目录。 - 目录中包含文件或其他子目录,或者该目录正被使用。 - **17**: 系统无法将文件移到不同的驱动器。 - 文件位于不同物理驱动器上,不能直接移动。 - **18**: 没有更多文件。 - 已经没有更多的文件可供检索。 - **19**: 介质受写入保护。 - 尝试写入受写保护的介质,如某些类型的只读光盘。 - **20**: 系统找不到指定的设备。 - 请求的设备不存在或未连接。 - **21**: 设备未就绪。 - 设备尚未准备好接受命令。 - **22**: 设备不识别此命令。 - 设备不支持该命令。 - **23**: 数据错误(循环冗余检查)。 - 发生数据传输错误。 - **24**: 程序发出命令,但命令长度不正确。 - 命令的大小或结构不正确。 - **25**: 驱动器无法找出磁盘上特定区域或磁道的位置。 - 无法找到特定的磁盘区域或磁道。 - **26**: 无法访问指定的磁盘或软盘。 - 无法访问磁盘或软盘,可能是由于驱动器故障或介质问题。 - **27**: 驱动器找不到请求的扇区。 - 无法找到指定的扇区。 - **28**: 打印机缺纸。 - 打印机没有纸张。 - **29**: 系统无法写入指定的设备。 - 设备不允许写入操作。 - **30**: 系统无法从指定的设备上读取。 - 无法从设备读取数据。 #### 文件共享与访问错误 - **32**: 进程无法访问文件,因为另一个程序正在使用此文件。 - 文件正在被其他程序使用,导致当前进程无法访问。 - **33**: 进程无法访问文件,因为另一个程序已锁定文件的一部分。 - 文件的部分内容被其他程序锁定。 - **36**: 用来共享的打开文件过多。 - 系统达到了允许同时打开文件的最大数量。 - **38**: 到达文件结尾。 - 读取操作到达文件结尾。 - **39**: 磁盘已满。 - 磁盘空间已满,无法继续写入数据。 #### 网络与通信错误 - **50**: 不支持网络请求。 - 网络请求不受支持。 - **51**: 远程计算机不可用。 - 无法连接到远程计算机。 - **52**: 在网络上有重复的名称。 - 网络中有重复的计算机名。 - **53**: 找不到网络路径。 - 请求的网络路径不存在。 - **54**: 网络忙。 - 网络拥塞或负载过高。 - **55**: 指定的网络资源或设备不再可用。 - 请求的网络资源不再可用。 - **56**: 已到达网络BIOS命令限制。 - 达到了网络BIOS命令的最大数量限制。 - **57**: 网络适配器硬件出错。 - 网络适配器硬件故障。 - **58**: 指定的服务器无法运行请求的操作。 - 服务器无法执行请求的操作。 - **59**: 发生意外的网络错误。 - 发生了未知的网络错误。 - **60**: 远程适配器不兼容。 - 远程适配器与本地系统不兼容。 - **61**: 打印机队列已满。 - 打印机队列已满,无法接收更多任务。 - **62**: 无法在服务器上获得用于保存待打印文件的空间。 - 打印服务器上没有足够的空间保存待打印文件。 - **63**: 删除等候打印的文件。 - 请求删除正在等待打印的文件。 - **64**: 指定的网络名不再可用。 - 请求的网络名不再有效。 - **65**: 拒绝网络访问。 - 网络访问被拒绝。 - **66**: 网络资源类型错误。 - 请求的网络资源类型错误。 - **67**: 找不到网络名。 - 请求的网络名不存在。 - **68**: 超过本地计算机网卡的名称限制。 - 网卡名称数量超过限制。 - **69**: 超出网络BIOS会话限制。 - 网络BIOS会话数量超过限制。 - **70**: 远程服务器已暂停,或正在启动过程中。 - 远程服务器暂停或正在启动中。 - **71**: 当前已无法再同此远程计算机连接,因为已达到计算机的连接数目极限。 - 已达到远程计算机的最大连接数。 - **72**: 已暂停指定的打印机或磁盘设备。 - 指定的打印机或磁盘设备已暂停。 #### 其他错误 - **80**: 文件存在。 - 文件已经存在,无法创建同名文件。 - **82**: 无法创建目录或文件。 - 无法创建目录或文件,可能是权限问题或磁盘已满。 - **83**: INT24失败。 - INT24 系统调用失败。 - **84**: 无法取得处理此请求的存储空间。 - 无法分配足够的存储空间来处理请求。 - **85**: 本地设备名已在使用中。 - 请求的本地设备名已被占用。 - **86**: 指定的网络密码错误。 - 输入的网络密码错误。 - **87**: 参数错误。 - 函数调用中的参数不正确。 - **88**: 网络上发生写入错误。 - 网络写入操作失败。 - **89**: 系统无法在此时启动另一个进程。 - 无法启动新进程,可能是系统资源不足。 - **100**: 无法创建另一个系统信号灯。 - 无法创建新的信号灯。 - **101**: 另一个进程拥有独占的信号灯。 - 另一个进程独占了信号灯。 - **102**: 已设置信号灯且无法关闭。 - 信号灯已设置,无法关闭。 - **103**: 无法再设置信号灯。 - 无法设置信号灯。 - **104**: 无法在中断时请求独占的信号灯。 - 无法在中断时请求独占信号灯。 - **105**: 此信号灯的前一个所有权已结束。 - 信号灯的前一个所有者已经释放了所有权。 - **107**: 程序停止,因为替代的软盘未插入。 - 替代软盘未插入,导致程序停止。 - **108**: 磁盘在使用中,或被另一个进程锁定。 - 磁盘正在被使用或被其他进程锁定。 - **109**: 管道已结束。 - 管道连接已经结束。 - **110**: 系统无法打开指定的设备或文件。 - 无法打开指定的设备或文件。 - **111**: 文件名太长。 - 文件名超过了系统允许的最大长度。 - **112**: 磁盘空间不足。 - 磁盘空间不足,无法执行操作。 - **113**: 无法再获得内部文件的标识。 - 无法获取内部文件的唯一标识。 - **114**: 目标内部文件的标识不正确。 - 目标文件的内部标识不正确。 - **117**: 应用程序制作的IOCTL调用错误。 - IOCTL (输入/输出控制) 调用失败。 - **118**: 验证写入的切换参数值错误。 - 验证写入时切换参数的值不正确。 - **119**: 系统不支持请求的命令。 - 系统不支持所请求的命令。 - **120**: 此功能只被此系统支持。 - 特定功能仅在当前系统上支持。 - **121**: 信号灯超时时间已到。 - 等待信号灯的超时时间已到。 - **122**: 传递到系统调用的数据区太小。 - 数据缓冲区太小,无法容纳数据。 - **123**: 文件名、目录名或卷标语法不正确。 - 文件名、目录名或卷标的语法错误。 - **124**: 系统调用级别错误。 - 系统调用的级别错误。 - **125**: 磁盘没有卷标。 - 磁盘未标记。 - **126**: 找不到指定的模块。 - 指定的动态链接库 (DLL) 未找到。 - **127**: 找不到指定的程序。 - 指定的程序未找到。 - **128**: 没有等候的子进程。 - 没有正在等待的子进程。 - **130**: 试图使用操作(而非原始磁盘I/O)的已打开磁盘分区的文件句柄。 - 尝试对打开的磁盘分区使用非原始磁盘 I/O 操作。 - **131**: 试图移动文件指针到文件开头之前。 - 尝试将文件指针移动到文件开头之前的位置。 - **132**: 无法在指定的设备或文件上设置文件指针。 - 无法设置文件指针。 - **133**: 包含先前加入驱动器的驱动器无法使用JOIN或SUBST命令。 - 加入驱动器后无法使用 JOIN 或 SUBST 命令。 - **134**: 试图在已被合并的驱动器上使用JOIN或SUBST命令。 - 尝试在已合并的驱动器上使用 JOIN 或 SUBST 命令。 - **135**: 试图在已被合并的驱动器上使用JOIN或SUBST命令。 - 同上。 - **136**: 系统试图解除未合并驱动器的JOIN。 - 尝试解除未合并驱动器的 JOIN。 - **137**: 系统试图解除未替代驱动器的SUBST。 - 尝试解除未替代驱动器的 SUBST。 - **138**: 系统试图将驱动器合并到合并驱动器上的目录。 - 尝试将驱动器合并到已合并的驱动器目录。 - **139**: 系统试图将驱动器替代为替代驱动器上的目录。 - 尝试将驱动器替代为已替代驱动器上的目录。 - **140**: 系统试图将驱动器合并到替代驱动器上的目录。 - 尝试将驱动器合并到已替代驱动器上的目录。 以上是文档中列出的部分 `GetLastError()` 错误代码及其解释。理解这些错误代码对于调试和解决 Windows 应用程序中的问题至关重要。希望这些信息能帮助开发者更好地理解和解决遇到的问题。
- 清雨小竹2012-03-19返回码很全面,推荐下,C++编程必备啊,附上使用代码 LPVOID lpMsgBuf; FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL,GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &lpMsgBuf;, 0, NULL ); AfxMessageBox((CString)(LPTSTR)lpMsgBuf);
- 粉丝: 1
- 资源: 30
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Udemy 课程 - 面向软件开发人员的 Java 编程大师班 讲师 - Tim Buchalka.zip
- Udemy 上的现代 JavaScript(从新手到忍者)课程的所有讲座文件 .zip
- Thumbnailator - Java 的缩略图生成库.zip
- The Net Ninja YouTube 频道上的 JavaScript DOM 教程的所有课程文件 .zip
- Swagger Spec 到 Java POJO.zip
- Stripe API 的 Java 库 .zip
- RxJava 2 和 Retrofit 结合使用的几个最常见的使用方式举例.zip
- RxJava 2 Android 示例 - 如何在 Android 中使用 RxJava 2.zip
- 上传OpenCV开发资源OpenCv开发资源
- Spring Boot与Vue 3前后端分离技术详解及应用