Перейти к содержимому


Фото

Проблема с С++


  • Чтобы отвечать, сперва войдите на форум
31 ответов в теме

#1 Дей-Лак Опубликовано 19 Апрель 2010 - 18:32

Дей-Лак
  • Свои
  • 596 Сообщений:
  • Николай Яковлев
Очень надеюсь что кто-то сталкивался с подобной проблемой и смог ее решить. Суть такая: У меня стоит OS Windows Vista. На ней стоит С++(Borland). Так как Vista не поддерживает полноэкранный режим консоли я установил эмулятор DOSBox. Все прекрасно работает кроме графической библиотеки, причем как в обычной консоли, так и в эмуляторе. Все графические функции просто пропускаются. Вместо этого пишет: "BGI Error: Graphics not initialized (use 'initgraph')" Что нужно сделать чтоб заработало? Или просто надо установить другую OS? :( P.S. Надеюсь ясно обрисовал проблему.
Опубликованное фото
Конституцию прочесть должен ты.

#2 Generator Опубликовано 19 Апрель 2010 - 18:43

Generator
  • Свои
  • 1 713 Сообщений:
  • Василий Яблоков
О, древняя проблема, и поднималась она неоднократно. Увы, в Виндах, начиная с Висты, не поддерживается полноэкранный режим ДОСовских приложений... А графика соответственно тоже не работает, так как требует этого самого полноэкранного режима. Прогать в Досбоксе -- это вообще очень левая затея... Вывод -- ставь XP либо просто так, либо на виртуальную машину поверх Висты

Изменено: Generator, 19 Апрель 2010 - 18:43

С уважением, самый большой в мире самолет по версии Google.
Надо быть осторожным со стремлением к минус бесконечности. (ЮА)

#3 Дей-Лак Опубликовано 19 Апрель 2010 - 18:49

Дей-Лак
  • Свои
  • 596 Сообщений:
  • Николай Яковлев
Спасибо, попробую. Но лучше бы чтоб как-то в висте. Хотя надо было сразу линукс ставить.

Изменено: Дей-Лак, 19 Апрель 2010 - 18:50

Опубликованное фото
Конституцию прочесть должен ты.

#4 Денис Опубликовано 19 Апрель 2010 - 19:02

Денис
  • Genius loci
  • 6 907 Сообщений:
  • Денис Сумин
Ставь линукс и разбирайся с ним потихоньку :-)

#5 Generator Опубликовано 19 Апрель 2010 - 19:07

Generator
  • Свои
  • 1 713 Сообщений:
  • Василий Яблоков
<_< Человек помочь просил, а ты так сразу...
С уважением, самый большой в мире самолет по версии Google.
Надо быть осторожным со стремлением к минус бесконечности. (ЮА)

#6 Дей-Лак Опубликовано 19 Апрель 2010 - 19:22

Дей-Лак
  • Свои
  • 596 Сообщений:
  • Николай Яковлев
Бред, я сейчас поставил хп и на нем то же самое :wacko:
Опубликованное фото
Конституцию прочесть должен ты.

#7 koraalex Опубликовано 19 Апрель 2010 - 20:39

koraalex
  • Свои
  • 1 971 Сообщений:
  • Алексей Коробов
А что, М.К. требует Borland? Не пора ли его отправить в историю? И разве нет ему альтернативы для Виндов? Это такой возглас дилетанта, потому что сам я с этим не работаю. Кстати, Денис, не ответишь ли мне в другой теме насчёт линукс-среды для C++?

#8 hrulikus Опубликовано 19 Апрель 2010 - 21:21

hrulikus

    Главный выпендрежник

  • Свои
  • 1 348 Сообщений:
  • Егор, Хрулёв
М.К. поступает как раз таки правильно.
Человеку надо для начала научиться работать с основами и современные среды разработки тут вообще ни к чему.Они лишь будут набивать голову восьмиклассника лишь всякой фигней.там же такая масса параметров, что начинающему вообще нереально разобраться.


А если по теме: точно не помню, но мне казалось в Сях надо графику инициализировать.
там как раз какая-то функция была initgraph с двумя-тремя параметрами. За вторую, кажется, мы ставили пустые кавычки.

Проблема решается добавлением этмх строчек в начале программы:
int gDriver=DETECT,gMode;
	initgraph(&gDriver,&gMode,getenv("BGI"));

"Каждая мечта тебе дается вместе с силами, необходимыми для ее осуществления."
Р.Бах

#9 koraalex Опубликовано 19 Апрель 2010 - 21:33

koraalex
  • Свои
  • 1 971 Сообщений:
  • Алексей Коробов
Ну, я такого подхода не придерживаюсь, потому что есть несложные профессиональные среды, основанные на современных технологиях. Надо объяснить как пользоваться основными функциями и всё.

Изменено: koraalex, 20 Апрель 2010 - 9:52


#10 KiberGus Опубликовано 20 Апрель 2010 - 13:52

KiberGus
  • Genius loci
  • 6 561 Сообщений:
  • Алексей Гусейнов

Ну, я такого подхода не придерживаюсь, потому что есть несложные профессиональные среды, основанные на современных технологиях. Надо объяснить как пользоваться основными функциями и всё.

Им консоль нужна для начала, а в виндах это просто как-то не принято.
Зато, обладая единственной в мире подводной орбитальной группировкой спутников глонасс...
gentoo.gif

#11 Дей-Лак Опубликовано 20 Апрель 2010 - 15:58

Дей-Лак
  • Свои
  • 596 Сообщений:
  • Николай Яковлев
Егор, про эти строчки я знаю (только gentenv вроде не обязательно,можно просто "BGI", но я попробовал все равно не работает)
Все, у меня не М.К. :( у меня Татьяна Леонидовна. На уроках мы в Borland'е, значит и дома в нем.
Может, если у кого-то стоит С++, скиньте мне ту самую папку BGI, может с ней что-то не так. Кстати не у меня одного в классе эта проблема.
Опубликованное фото
Конституцию прочесть должен ты.

#12 Syrano Опубликовано 20 Апрель 2010 - 16:02

Syrano
  • Свои
  • 9 636 Сообщений:
  • Владимир Зайцев

Егор, про эти строчки я знаю (только gentenv вроде не обязательно,можно просто "BGI", но я попробовал все равно не работает)
Все, у меня не М.К. :( у меня Татьяна Леонидовна. На уроках мы в Borland'е, значит и дома в нем.
Может, если у кого-то стоит С++, скиньте мне ту самую папку BGI, может с ней что-то не так. Кстати не у меня одного в классе эта проблема.

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

С нами сила Алхазашвили!


#13 Дей-Лак Опубликовано 20 Апрель 2010 - 16:11

Дей-Лак
  • Свои
  • 596 Сообщений:
  • Николай Яковлев
Володя, я спрашивал у М.К., она сказала мне что то вроде: "Я не сисадмин, и я не знаю" :) Ну правда в 202'ю я не ходил.
Опубликованное фото
Конституцию прочесть должен ты.

#14 гык-sse2 Опубликовано 20 Апрель 2010 - 16:15

гык-sse2
  • Свои
  • 377 Сообщений:
  • Михаил Беляев

Прогать в Досбоксе -- это вообще очень левая затея...

Я прогаю под досбоксом (правда, уже в основном на асме). Под Mac OS X. А программу про маины (графическую) на VC++2K5(Windows Forms) перенес. (под VMWare)
Медведь громит каны!

#15 Syrano Опубликовано 20 Апрель 2010 - 16:15

Syrano
  • Свои
  • 9 636 Сообщений:
  • Владимир Зайцев

Володя, я спрашивал у М.К., она сказала мне что то вроде: "Я не сисадмин, и я не знаю" :) Ну правда в 202'ю я не ходил.

А Татьяна Леонидовна? В конце концов, если это массовая проблема, то надо сообща ее решать :-)

С нами сила Алхазашвили!


#16 Дей-Лак Опубликовано 20 Апрель 2010 - 16:42

Дей-Лак
  • Свои
  • 596 Сообщений:
  • Николай Яковлев

А программу про маины (графическую) на VC++2K5(Windows Forms) перенес. (под VMWare)

Я из этого, честно говоря, ничего не понял:)
Опубликованное фото
Конституцию прочесть должен ты.

#17 гык-sse2 Опубликовано 15 Май 2010 - 10:02

гык-sse2
  • Свои
  • 377 Сообщений:
  • Михаил Беляев
Не маины, а машины=)
VC++2005 - Visual C++ 2005 .NET, входит в состав Microsoft Visual Studio, установлена под Windows XP, а она - на виртуальной машине VMWAreVirtualBoxуже опять VMWare Fusion в Mac OS X

Изменено: гык-sse2, 20 Октябрь 2010 - 15:54

Медведь громит каны!

#18 Дей-Лак Опубликовано 29 Август 2010 - 21:26

Дей-Лак
  • Свои
  • 596 Сообщений:
  • Николай Яковлев
Если кому то интересно то проблема все же решилась. Причем и на XP и на Vista. Правда это все равно только для DosBox, но работает. Вместо initgraph(&gd,&gm,"BGI") надо писать initgraph(&gd,&gm,"..//BGI") Зачем я не знаю. Так написано в папке examples :) Работает.
Опубликованное фото
Конституцию прочесть должен ты.

#19 гык-sse2 Опубликовано 30 Август 2010 - 4:51

гык-sse2
  • Свои
  • 377 Сообщений:
  • Михаил Беляев

Если кому то интересно то проблема все же решилась. Причем и на XP и на Vista. Правда это все равно только для DosBox, но работает.
Вместо initgraph(&gd,&gm,"BGI") надо писать initgraph(&gd,&gm,"..//BGI")
Зачем я не знаю. Так написано в папке examples :) Работает.

На XP-то зачем досбокс?
А initgraph(&gd,&gm,"") не работает?


Вообще, я уже переписал graphics.h на OpenGL (т.е. мы пишем все как в борланде, только инитграф другой - initgraph(int windowWidth, int windowHeight), т.к. мы сами задаем размер окна.
Начал переписывать клавиатурные ф-ции - написал bioskey (обрабатывает 1 и 0, 2 игнорирует), а вот дальше - какой-нибудь getch или gets уже не получается. На Windows Forms это было бы так:
[code=auto:0]
char getch()
{while(!bioskey(1)) Application::DoEvents();
return bioskey(0);
}
Что на GLUT вместо DoEvents написать? Иначе программа виснет - цикл не дает выполниться handleKeyPress(unsigned char, int, int)

Да, и пока это только под Mac OS X (шаблон программы). Для Windows нужно еще какие-то windows.h, hDC, pDC...

Изменено: iMichael, 30 Август 2010 - 4:53

Медведь громит каны!

#20 KiberGus Опубликовано 30 Август 2010 - 5:40

KiberGus
  • Genius loci
  • 6 561 Сообщений:
  • Алексей Гусейнов
На glut нет аналога DoEvents т.к. ты пишешь колбеки, а не основной цикл. Попробуй вместо glut использовать SDL, мне он намного больше понравился. Абсолютно одинаково инициализируется подо всеми платформами и главный цикл пишешь ты. А SDL предоставлет функции для проверок событий.
Зато, обладая единственной в мире подводной орбитальной группировкой спутников глонасс...
gentoo.gif




1 пользователей читают эту тему

0 пользователей, 1 гостей, 0 невидимых