Удомельский форум   ◊
www.udomlya.ru | Медиа-Центр | Удомля КТВ | Старый форум

Вернуться   Удомельский форум > Hard&Soft > Программирование
Справка Пользователи Календарь Сообщения за день
 
 
Опции темы Опции просмотра
Старый 24.05.2006, 00:57   #1
Azz
Пользователь
 
Аватар для Azz
 
Регистрация: 26.04.2006
Адрес: Амстердам!!!
Сообщений: 48
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
По умолчанию TP

Вот нашел статью Как вставить BGI дpайвеp в пpогpамму:

Подробное, по шагам, описание технологии встраивания BGI драйверов
в тело паскальной программы.

Как вставить BGI дpайвеp в пpогpамму:

1 шаг:
Конвеpтиpуешь BINOBJ-ем BGI в obj файл

binobj egavga.bgi egavga egavga

2 шаг:
Вставляешь такую диpективу в пpогpамму:

{$L egavga} -- Включить внешний файл

3 шаг:
Объявляешь внешнюю пpоцедуpу EGAVGA

procedure EGAVGA; external;

4 шаг:
Регистpиpуешь ее и дальше pаботаешь как обычно:

procedure OpenGraph;
var
D, M, E: Integer;
begin
if RegisterBGIdriver(@EGAVGA) < 0 then begin
Writeln('Error registering driver: ', GraphErrorMsg(GraphResult));
Halt(1);
end;
DetectGraph(D,M);
InitGraph(D, M, '');
E := GraphResult;
if E <> grOK then begin
Writeln('Open graphics error: ', GraphErrorMsg(E));
Halt(1);
end;
end;
(c)Сеpгей Бадаев
master@oilgas.tyumen.su
Мне не понятно что такое BINOBJ? Если это прога то где её моно взять.
Azz вне форума  
Старый 24.05.2006, 01:39   #2
Azz
Пользователь
 
Аватар для Azz
 
Регистрация: 26.04.2006
Адрес: Амстердам!!!
Сообщений: 48
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
По умолчанию

Все сконвертировать смог, но прога почему-то ругается в самом конце:
51 Invalid PUBLIC definition.....(В умной книжке посматрел что за ошибка:Некоректное Public-определение.) А че ето значит непонял
Azz вне форума  
Старый 25.05.2006, 20:16   #3
Azz
Пользователь
 
Аватар для Azz
 
Регистрация: 26.04.2006
Адрес: Амстердам!!!
Сообщений: 48
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
По умолчанию

Блмн куда делись все програмёры??? Мне прогу в Субботу здавать нуно... для пущей важности надо запихнуть этот гр****ый egavga в уже скомпилиною прогу. Помогите кто знает???
Azz вне форума  
Старый 26.05.2006, 07:49   #4
SAD
Местный
 
Аватар для SAD
 
Регистрация: 26.04.2006
Адрес: г. Удомля
Сообщений: 143
Вы сказали Спасибо: 14
Поблагодарили 2 раз(а) в 2 сообщениях
Отправить сообщение для SAD с помощью ICQ Отправить сообщение для SAD с помощью Skype™
По умолчанию

Прога эта из стандартного набора Турбо-Паскаля версий MS-DOS (ну и других Borland-разработок).
SAD вне форума  
Старый 26.05.2006, 11:57   #5
Slyer
Новичок
 
Регистрация: 04.05.2006
Сообщений: 14
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
По умолчанию

Ошибка в 37 строке.
Slyer вне форума  
Старый 26.05.2006, 11:58   #6
Slyer
Новичок
 
Регистрация: 04.05.2006
Сообщений: 14
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
По умолчанию

Ты хоть бы код показал.
Slyer вне форума  
Старый 26.05.2006, 16:12   #7
IGO
Новичок
 
Регистрация: 15.05.2006
Адрес: Удомля
Сообщений: 2
Вы сказали Спасибо: 0
Поблагодарили 1 раз в 1 сообщении
По умолчанию

Объявление внешней процедуры должно быть примерно таким:

program OpenGraph;
uses Graph;
procedure EGAVGA; external;
{$L egavga}

У меня с этим проблем не было.
IGO вне форума  
Старый 26.05.2006, 17:32   #8
Azz
Пользователь
 
Аватар для Azz
 
Регистрация: 26.04.2006
Адрес: Амстердам!!!
Сообщений: 48
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
По умолчанию

Блин лана поставлю вопрос по другому кто умеет при компеляции Pascal программы засунуть в неё драйвер egavga? Потому что иначе с прогой приходится таскать этот тупой драйвер.
зы Надеюсь побыстрей услышать ответ т.к. здавать прогу завтро в 9:00
Azz вне форума  
Старый 26.05.2006, 18:25   #9
Slyer
Новичок
 
Регистрация: 04.05.2006
Сообщений: 14
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
По умолчанию

Посмотрел в интернете, т.к. ничего уже не помню.
Всё, что написано выше должно работать.
1. Ставишь всем egavga.bgi атрибут "только для чтения".
2. Обжимаешь из командной строки "binobj egavga.bgi egavga.obj egavgaDriverProc"
3. Дкларируешь в начале программы {$L EGAVGA.OBJ} Procedure EGAVGADriverProc; External;
4. Далее:

...
Var grDriver, grMode, ErrCode: Integer;
...

Begin
If RegisterBGIDriver(@EGAVGADriverProc) < 0 Then Begin
WriteLn('Error registering driver : ', GraphErrorMsg(GraphResult)); Halt(100)
End;
grDriver := VGA;
grMode := VGAHi;
InitGraph(grDriver, grMode, '');
ErrCode := GraphResult;

If ErrCode <> grOk Then Begin
WriteLn('Graphics error : ', GraphErrorMsg(ErrCode)); Halt(100)
End;
...
End.

Взял отсюда: http://volvo1971.nm.ru/home/faq.htm.

Ошибка 51 может появляться, если ты неправильно точку входа опубликовал при "binobj egavga.bgi egavga.obj egavgaDriverProc". Собственно egavgaDriverProc.
Slyer вне форума  
Старый 26.05.2006, 20:14   #10
Azz
Пользователь
 
Аватар для Azz
 
Регистрация: 26.04.2006
Адрес: Амстердам!!!
Сообщений: 48
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
По умолчанию

Спасибо, Все получилось =)
Azz вне форума  
 


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 14:24. Часовой пояс GMT +3.


Для улучшения работы сайта и его взаимодействия с пользователями мы используем файлы cookie. Продолжая работу с сайтом, Вы разрешаете использование cookie-файлов. Вы всегда можете отключить файлы cookie в настройках Вашего браузера.
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot