X窗口ID 0表示什么 - 没有创建窗口?

时间:2013-11-22 13:43:26

标签: c graphics render x11

当我打印窗口句柄的值(X11简单窗口)时,它给出零。是否存在窗口?

我所拥有的是C程序中两个位置的以下日志。我需要确保两个窗口是相同的。 我在那里打印了ids,它出现了0.我怀疑这是否是同一个窗口或者根本没有创建窗口

  

printf(“\ n Window id is ...%d”,win);

结果是0。

问题 - 如果为X窗口打印的值为0.这是否表示没有窗口。或者它是一个合适的身份?

答案后编辑---
1.打印窗口为int很好,之前已经完成了。像223021这样的值会在printfs中打印出来。使用格式说明符%u也会产生相同的结果。

2.Win被宣布为Window win;

1 个答案:

答案 0 :(得分:0)

在我的系统上,sizeof(Window)产生8,而sizeof(int)产生4.这可能是你的printf打印0的原因:printf("%d", someWindow)使用8个字节中的前4个,而只有最后的1个可能很重要。

您必须将Window转换为众所周知的类型

printf("%d", (int) win);
printf("%ld", (long) win);

你使用的类型越大,可能越好。实际上,我甚至不确定是否必须将Window实现为算术类型。