"... Позвольте нам Сборка Компилятор... "
я был бы второй http://compilers.iecc.com/crenshaw/ @sasb. Забудьте покупать больше книг в настоящий момент.
, Почему? Инструменты & язык.
требуемым языком является Паскаль и если я помню, правильно основан на Turbo Pascal. Это именно так происходит, если Вы переходите в http://www.freepascal.org/ и загружаете компилятор Паскаля, все примеры работают прямо от страницы ~ http://www.freepascal.org/download.var , отличная вещь о Бесплатном Паскале - Вы, может использовать его почти безотносительно процессора или ОС, о которой можно заботиться.
, Как только Вы освоили уроки тогда, пробуют более усовершенствованное " Книга Дракона" ~ http://en.wikipedia.org/wiki/Dragon_book
В X11 вам нужно будет вызвать XGetWindowAttributes Xlib чтобы получить различную информацию об окне, включая размер и положение относительно родителя. В качестве примера того, как это используется, вы можете найти в Google "xwininfo.c".
Тем не менее, вероятно, вы собираетесь использовать более высокоуровневую структуру для программирования окон - и высока вероятность того, что в ней уже есть некоторые другие примитивы для этого, см. пример для Qt - так что вы можете дать немного больше информации по вопросу.
Инструмент командной строки xdpyinfo предоставляет вам эту информацию; как объясняет Эндрю Y, чтобы сделать это программно, вам нужно использовать Xlib.
Зависит:
QApplication :: desktop () -> screenGeometry ()(см. http://doc.qt.digia.com/4.0/qdesktopwidget.html )
Чтобы получить разрешение экрана, вы можете использовать расширение XRandR, как в xrandr источниках:
SizeID current_size;
XRRScreenSize *sizes;
dpy = XOpenDisplay (display_name);
// ...
root = RootWindow (dpy, screen);
sc = XRRGetScreenInfo (dpy, root);
current_size = XRRConfigCurrentConfiguration (sc, ¤t_rotation);
sizes = XRRConfigSizes(sc, &nsize);
for (i = 0; i < nsize; i++) {
printf ("%c%-2d %5d x %-5d (%4dmm x%4dmm )",
i == current_size ? '*' : ' ',
i, sizes[i].width, sizes[i].height,
sizes[i].mwidth, sizes[i].mheight);
// ...
}
Вы можете увидеть вывод, набрав «xrandr» в вашем xterm.
Или, лучше, используйте Метод xdpyinfo :
Display *dpy;
// dpy = ...
int scr = /* ... */
printf (" dimensions: %dx%d pixels (%dx%d millimeters)\n",
DisplayWidth (dpy, scr), DisplayHeight (dpy, scr),
DisplayWidthMM(dpy, scr), DisplayHeightMM (dpy, scr));