nixp.ru v3.0

28 мая 2017,
воскресенье,
11:40:17 MSK

DevOps с компанией «Флант»
anonymous написал 14 февраля 2005 года в 15:51 (343 просмотра) Ведет себя неопределенно; открыл 1814 темы в форуме, оставил 5575 комментариев на сайте.

Народ помогите плс:

Вот мой код:

Display * D1;

Screen * S1;

int sd_scr_w = 1024;

int sd_scr_h = 768;

D1 = XOpenDisplay( NULL );

S1 = DefaultScreenOfDisplay(D1); // вот тут проблемка…

sd_scr_w = WidthOfScreen(S1);

sd_scr_h = HeightOfScreen(S1);

проблемная строчка вызывает segmentation fault

как бороться??

и как еще узнать разрешение экрана?

Uncle Theodore


#include 
#include 
#include 
#include 
int main()
{
  Display *D1;
  int S1;
  int sd_sc_rw, sd_sc_rh;
  D1 = XOpenDisplay(NULL);
  assert(D1);
  S1 = DefaultScreen(D1);
  sd_sc_rw = DisplayWidth(D1, S1);
  sd_sc_rh = DisplayHeight(D1, S1);
  printf("Screen resolution is %i by %i\n", sd_sc_rw, sd_sc_rh);
  return 0;
};
// gcc -L /usr/X11R6/lib -lX11 resolution.c -o resolution

Тебе надо подождать, пока установится соединение с сервером. Это делается командой

assert(Display)

Screen лучше держать числом.

Good Luck,

UT