当我打印窗口句柄的值(X11简单窗口)时,它给出零。是否存在窗口?
我所拥有的是C程序中两个位置的以下日志。我需要确保两个窗口是相同的。 我在那里打印了ids,它出现了0.我怀疑这是否是同一个窗口或者根本没有创建窗口?
printf(“\ n Window id is ...%d”,win);
结果是0。
问题 - 如果为X窗口打印的值为0.这是否表示没有窗口。或者它是一个合适的身份?
答案后编辑---
1.打印窗口为int很好,之前已经完成了。像223021这样的值会在printfs中打印出来。使用格式说明符%u也会产生相同的结果。
2.Win被宣布为Window win;
答案 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
实现为算术类型。