Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   С/С++ | проблемы с граф. режимом (http://forum.oszone.net/showthread.php?t=74445)

_Linux_ 12-11-2006 11:39 510434

С/С++ | проблемы с граф. режимом
 
ГОСПОДА! Помогите! Вот такая проблема : не работает графический режим на С++ for dos, а именно : пишу простую програмку, аля вывести две линии, и при запуске комп ПАДАЕТ! Т.е. виснет наглухо, taskmanadger запустить не могу, индикатор загрузки процессора не мигает, как будто проц перестал думать! Кто - нибудь знает в чем проблема и как её устранить в короткие сроки, а то курсач на носу, а без граф. режима никак.

Diseased Head 12-11-2006 12:09 510447

Мож граф режим, не тот? Мало инфы. Какой компилятор? Да и код бы, дал.

_Linux_ 12-11-2006 16:25 510495

Код "наипрстетский":
Код:

#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 510633

Я тоже щас 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 510659

Ещё, забыл. Может 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

_Linux_ 02-12-2006 12:36 519764

Ничего из вышепредложенного к сожалению не помогло =))
Выход нашел такой : Форматнул винт в FAT32 (в замен NTFS), поставил XP SP1. Под виндой всё равно не работает, а вот в DOS'е всё пучком =))

Diseased Head 02-12-2006 14:30 519825

Интересно. А почему же у меня пашет? Ээх. С этими компами всегда гемор...

XPEHOMETP 02-12-2006 14:45 519833

Win XP - система абсолютно 32-битная (в отличие от Win 9х), и для запуска 16-битных ДОСовских прог (или прог для Win 3.0 - 3.11) ей нужны особые конфигурационные файлы: Config.nt и Autoexec.nt (находящиеся в systemroot\System32). Если ставить систему на чистый диск, она их обычно ленится создавать: мол, все равно здесь не юзают ДОС. Я ставил по соседству с работающей Win 98, у меня все прописалось пучком и ДОСовские проги работают.

А для запуска простеньких небольших прог ДОС можно было и с дискеты загрузить.


Время: 00:11.

Время: 00:11.
© OSzone.net 2001-