Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Теоретические вопросы _ Проблема с графикой

Автор: Люциф 18.10.2006 7:27

У меня паскаль в графическом режиме не работает... Пишет нечто о том, что процессор ntvdm обнаружил недопустимую ошибку/инструкцию и порывается закрыть приложение... Прям не знаю. что делать =(

Автор: Ozzя 18.10.2006 9:58

OS - Win2000? ПАСКАЛЬ - Турбо/Борланд Паскаль?
Как вариант решения - используйте эмулятор DOS - http://dosbox.sourceforge.net/news.php?show_news=1
Либо перейдите на 32-битный компилятор FreePascal. - http://www.freepascal.org
Стандартный модуль Graph не очень. sad.gif Используйте WinGraph - ссылка есть на сайте.

Автор: Люциф 19.10.2006 6:40

Мне нужен именно graph... Стоит ХР, такая же, как и у тех, кто мне её ставил; паскаль взят у них же, но и они руками разводят.


Эскизы прикрепленных изображений
Прикрепленное изображение

Автор: volvo 19.10.2006 6:54

Код, при запуске которого происходит ошибка, и версию компилятора (Borland Pascal 7.0, я не ошибаюсь?) - в студию...

Автор: Bokul 19.10.2006 8:34

Скорее всего модуль не совместим с версией паскаля. У меня тоже такая проблема (см. атач), но нашел выход - вместо Borland Pascal 7.0 юзаю, кажется, 5-ый TP.


Эскизы прикрепленных изображений
Прикрепленное изображение

Автор: Admiral 28.09.2007 19:37

Проблема та же самая, TP70, WinXP SP2. Пример кода, при котором возникает вылет сообщения:"Процессор NTVDM обнаружил недопустимую инструкцию" содержится в хэлпе - использование Initgraph.

{Initgrf.PAS}
{ Пример программы для процедуры InitGraph }

Uses Graph;

Var grDriver : Integer;
grMode : Integer;
ErrCode : Integer;

Begin
grDriver:=Detect;
InitGraph(grDriver, grMode, '');
ErrCode:=GraphResult;
If ErrCode = grOk Then
Begin
{ Графика }
Line(0, 0, GetMaxX, GetMaxY);
ReadLn;
CloseGraph;
End
Else WriteLn('Ошибка инициализации графики:', GraphErrorMsg(ErrCode));
End.

Разумеется, я прописываю каталог BGI или - ' ' и сажаю egavga.bgi рядом с исполняемым файлом.

----------------------------------------------------------------------------------------------------------------------
Мнится мне, что дело в драйверах видеокарты... или процессора(64-разрядный). До этого был другой процессор (32-разрядный) и другая материнская плата(видео на обеих платах встроенное), проблемы не наблюдалось.

Но, может быть, кто-то посоветует мне какое-то решение?

Автор: volvo 28.09.2007 19:59

Цитата
Мнится мне, что дело в драйверах видеокарты... или процессора
Ну, тогда осталось попробовать запускать графику под http://dosbox.sourceforge.net/news.php?show_news=1, и сказать что получилось...

Автор: Admiral 28.09.2007 20:44

Странные результаты - программка из хэлпа (Initgraph) в DOSBox выводит диагональную белую полосу, то есть, отрабатывает нормально. Еще одна программка что-то рисует, но при этом не реагирует на клавиши, не обновляет рисунок, подвисает. Третья программка запрашивает параметры, затем, ничего не рисуя, мирно выходит в окно консоли DOSBox. (под прошлой конфигурацией все программки функционировали нормально). То есть проблема пока решается как-то частично, неудовлетворительно. И еще попутно вопрос, можно ли к DOSBox прикрутить драйвер клавиатуры (подобно тому, как в autoexec.nt прописывается "lh windows\system32\kb16.com ru"), и как DOSBox научить понимать русский - пока вместо букв одни иероглифы.