Показать полную графическую версию : С/С++ | проблемы с граф. режимом
ГОСПОДА! Помогите! Вот такая проблема : не работает графический режим на С++ for dos, а именно : пишу простую програмку, аля вывести две линии, и при запуске комп ПАДАЕТ! Т.е. виснет наглухо, taskmanadger запустить не могу, индикатор загрузки процессора не мигает, как будто проц перестал думать! Кто - нибудь знает в чем проблема и как её устранить в короткие сроки, а то курсач на носу, а без граф. режима никак.
Diseased Head
12-11-2006, 12:09
Мож граф режим, не тот? Мало инфы. Какой компилятор? Да и код бы, дал.
Код "наипрстетский":
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
int main(void)
{
int gdriver = DETECT, gmode, errorcode; /*auto detection */
int xmax, ymax;
initgraph(&gdriver, &gmode, "");
errorcode = graphresult();
if (errorcode != grOk) /* an error occurred */
{
printf("error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1);
}
setcolor(getmaxcolor());
xmax = getmaxx();
ymax = getmaxy();
line(0, 0, xmax, ymax);
line(10,10,20,20);
getch();
closegraph();
return 0;
}
Всё это пишется на Borland C++ 3.1
Вот ещё удивительный факт : в нашем учебном заведении на доисторических компах всё работает, так я взял дистры, установленные на них, припёр домой, установил... все равно падает. Может проблема в железе. Я в hardware не спец, в чем дело - не знаю =\\\
Видео : Geforce 440MX
OS : Windows XP pro
Diseased Head
12-11-2006, 22:16
Я тоже щас Borland C++ 3.1 юзаю. :)
Но, прям не знаю чё те сказать. Я запустил у себя эту прогу. Пошла - не вылетело. Рисует белые линии на чёрном экране.
У меня тоже Windows XP pro (SP2). Правда видеокарта другая (Radeon), но с GeForce не должно быть проблемм (по идее). Он должен поддерживать режим VGA.
Могу посоветовать следующее (если ты этого уже не делал):
- Во первых. В Borland'е залезь в следующий пункт меню - Options|Linker|Libraries..., откроется окно (блок диалога), в нём, в разделе Libraries активируй пункт Graphics library (поставь галочку - [x]). Короче - надо подключить графические библиотеки.
- Ещё можно сделать следующее. Залезь в меню Options|Directories.... Там (в окне) нужно прописать пути к файлам. В строке Include Directories должно быть -> "Путь\INCLUDE" (без кавычек). В строке Library Directories -> "Путь\LIB". В остальные можно и не чё не вводить. Но если хочеш можеш ввести, так: Output Directories -> "Путь\OUT" (туда записываются компилируемые *.exe файлы), в Source Directories фиг знает, какой-то источник, я ввожу просто путь.
Путь должен соответствовать тому, в котором у тебя установлен Borland C++ 3.1, например: "C:\BC31\INCLUDE" (опять-же без кавычек).
- Если это не поможет. Тогда в своём коде, в функции initgraph(), третьим параметром пропиши директорию "Путь\\BGI". Но тут уже с кавычками (естественно) и с двумя слешами, например так: initgraph(&gdriver, &gmode, "C:\\BC31\\BGI").
Если всё это не поможет, тогда не знаю. Мож у тебя Windows такой. Можно под Win98 попробовать, или через DosBOX.
Да ещё, если это не поможет. Можеш, попробовать, переустановить Borland C++ 3.1 поновой. Только предварительно удали старую, и сохрани свои коды (если нужны). А потом проделай всё что я сказал ещё раз. Мож поможет. С компами всякое бывает. :wacko:
Diseased Head
12-11-2006, 22:39
Ещё, забыл. Может autodetect не работает (? почему-то ?). Хотя он должен работать. Можно попробовать переменной gdriver присвоить значение EGA или VGA (обычно эти режимы).
Ну можно и экзотику попробовать. Даю список всех режимов (макросов):
DETECT = 0
CGA = 1
MCGA = 2
EGA = 3
EGA64 = 4
EGAMONO = 5
IBM8514 = 6
HERCMONO = 7
ATT400 = 8
VGA = 9
PC3270 = 10
CURRENT_DRIVER = -1
Ничего из вышепредложенного к сожалению не помогло =))
Выход нашел такой : Форматнул винт в FAT32 (в замен NTFS), поставил XP SP1. Под виндой всё равно не работает, а вот в DOS'е всё пучком =))
Diseased Head
02-12-2006, 14:30
Интересно. А почему же у меня пашет? Ээх. С этими компами всегда гемор...
XPEHOMETP
02-12-2006, 14:45
Win XP - система абсолютно 32-битная (в отличие от Win 9х), и для запуска 16-битных ДОСовских прог (или прог для Win 3.0 - 3.11) ей нужны особые конфигурационные файлы: Config.nt и Autoexec.nt (находящиеся в systemroot\System32). Если ставить систему на чистый диск, она их обычно ленится создавать: мол, все равно здесь не юзают ДОС. Я ставил по соседству с работающей Win 98, у меня все прописалось пучком и ДОСовские проги работают.
А для запуска простеньких небольших прог ДОС можно было и с дискеты загрузить.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.