консольное приложение — эквивалентная функция C ++ с ScreenRes в FreeBasic

С FreeBasic я могу создать и открыть новый экран с функцией ScreenRes, Например,

#include "fbgfx.bi"
ScreenRes 640, 480, 32

Sleep()

создаст экран 640 x 480 с глубиной 32.

Итак, есть ли какая-либо функция в C ++, которая эквивалентна этому?

Примечание: я использую Ubuntu 14.04. Я предпочитаю кроссплатформенные или основанные на Linux функции, чем основанные на Windows.

0

Решение

Нет, нет Сам по себе C ++ является очень чистым языком и содержит только базовые функции (например, общие списки, алгоритмы сортировки, строки или инструменты управления памятью). Я не знаю FreeBasic, но, судя по вашему вопросу, это один из тех языков, у которого уже есть много специфических высокоуровневых функций. Это может быть проклятием или добродетелью, в зависимости от ваших требований.

Если вам нужна графика в C ++, то вы «должны» (==> проклясть) или «можете» (==> добродетель) использовать стороннюю библиотеку, которая точно соответствует вашим потребностям. Для полного побитового контроля над экраном, рассмотрите SDL.

1

Другие решения

Я не очень знаком с Linux, однако, вещи такого рода не так просты в C ++, поскольку C ++ — это язык, и он не знает, что такое «экран». Существуют библиотеки и фреймворки, которые могут вам помочь, такие как SDL, SFML и многие другие, которые укажут вам правильное направление.

0

Как сказали ребята, в C / C ++ такого нет. Чтобы создавать графику в C, вам нужно полагаться на внешнюю библиотеку, чего вы, вероятно, не хотите делать, поскольку говорите, что предпочитаете «функции на основе linux».

К сожалению, доступ к графике в Linux только через библиотеки, поставляемые с ОС, очень сложен, и ваша программа не будет переносимой на другие системы. (Если вы все равно хотите это сделать, вы можете прочитать о линейном кадровом буфере Linux или о X).

То, что я думаю, является наиболее близким решением к тому, что вы спрашиваете, что вы получаете небольшую библиотеку с простыми примитивами. Я думаю, что SVGALib это что-то вроде этого: http://www.svgalib.org/

Я не использовал его, но для того, что я прочитал, он похож на graphics.h, который раньше шел с Turbo / Borland C ++. Например, вы можете сделать это с SVGALib:

#include <stdlib.h>
#include <vga.h>

int main(void)
{
vga_init();
vga_setmode(G320x200x256);
vga_setcolor(4);
vga_drawpixel(10, 10);

sleep(5);
vga_setmode(TEXT);

return EXIT_SUCCESS;
}

Там вы можете увидеть, как установить режим. Я почти уверен, что он тоже будет поддерживать 32 бита 🙂

0
По вопросам рекламы [email protected]