gpt4 book ai didi

c - XErrorEvent结构体字段含义

转载 作者:行者123 更新时间:2023-11-30 14:40:22 27 4
gpt4 key购买 nike

我目前在 Xlib 和 CEF 方面遇到一些问题,我需要调查发送到使用 XSetErrorHandler 注册的函数的 XErrorEvent

typedef struct {
int type;
Display *display; /* Display the event was read from */
XID resourceid; /* resource id */
unsigned long serial; /* serial number of failed request */
unsigned char error_code; /* error code of failed request */
unsigned char request_code; /* Major op-code of failed request */
unsigned char minor_code; /* Minor op-code of failed request */
} XErrorEvent;

我想知道 typerequest_codeminor_code 字段的含义。 There is a book on C language interface for the X window system但我找不到有关该领域的任何信息。

最佳答案

type 是将无类型内存指针标识为指向 XErrorEvent 的指针 - 它的值始终为 X_Error

request_codea protocol request of the procedure that failed, as defined in X11/Xproto.h ,基本上是哪种请求生成了错误(第 2020 行及以后):

/* Request codes */

#define X_CreateWindow 1
#define X_ChangeWindowAttributes 2
#define X_GetWindowAttributes 3
#define X_DestroyWindow 4
#define X_DestroySubwindows 5
#define X_ChangeSaveSet 6
#define X_ReparentWindow 7
#define X_MapWindow 8
...

minor_coderequest_code 类似,只是由扩展使用。每个扩展都有自己的 request_code(范围为 128-255)。 minor_code 标识该扩展定义的特定请求。因此,X11最多支持127个扩展,每个扩展最多可以定义255个请求。 The exact paragraph:

Each extension is assigned a single opcode from that range, also known as it's “major opcode.” For each operation provided by that extension, typically a second byte is used as a “minor opcode.” Minor opcodes for each extension are defined by the extension.

关于c - XErrorEvent结构体字段含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55573354/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com