Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];

Вниз

Реализация движка в dll   Найти похожие ветки 

 
NewWonder ©   (2005-08-01 15:32) [0]

Вопрос к тем, кто писал движки в виде dll (DRON, помоги плиз!).
К примеру код dll такой:

library ...

uses
 OpenGL, Windows;

procedure DrawGreed(l: integer); export; stdcall;
var
 i, j: integer;
begin
 for i:=0 to l do
   for j:=0 to l do
   begin
     glBegin(gl_lines);
       glvertex3f(i/5, j/5, 0);
       glvertex3f((i+1)/5, j/5, 0);
       glvertex3f(i/5, j/5, 0);
       glvertex3f(i/5, (j+1)/5, 0);
     glEnd;
   end;
 glPushMatrix;
 glRotatef(90, 1, 0,0);
 for i:=0 to l do
   for j:=0 to l do
   begin
     glBegin(gl_lines);
       glvertex3f(i/5, j/5, 0);
       glvertex3f((i+1)/5, j/5, 0);
       glvertex3f(i/5, j/5, 0);
       glvertex3f(i/5, (j+1)/5, 0);
     glEnd;
   end;
 glPopMatrix;
 glPushMatrix;
 glRotatef(-90, 0, 1,0);
 for i:=0 to l do
   for j:=0 to l do
   begin
     glBegin(gl_lines);
       glvertex3f(i/5, j/5, 0);
       glvertex3f((i+1)/5, j/5, 0);
       glvertex3f(i/5, j/5, 0);
       glvertex3f(i/5, (j+1)/5, 0);
     glEnd;
   end;
 glPopMatrix;
end;

exports DrawGreed;

begin

end.


Тогда заголовок:

unit Dream3D;

interface

uses
 OpenGL;

procedure DrawGreed(l: integer);                                 stdcall; external "....DLL";

implementation

end.


Так вот, при вызове функции в приложении, написанном на API вылетает Access Violation. Всё ли я делаю правильно?


 
NewWonder ©   (2005-08-01 15:34) [1]

В чём может быть загвоздка? Такой же код в программе (не в DLL) работает нормально. Ла и Где здесь взяться ошибке?


 
Zer0 ©   (2005-08-01 18:33) [2]

ээ, а саму ддлю ручками загружать разве не надо?


 
cyborg ©   (2005-08-01 20:27) [3]

Не знаю чего там у тебя сделано.
У тебя совершенно другой процесс в длл.
Поэтому, если ты опенгл создаёшь в программе, а пытаешься в дллке вызывать glBegin(); и прочее, то естественно будут валить ошибки.

Попробуй комментировать участки кода в длл и понемногу раскомментируй, где начнёт вылезать ошибка, в том месте и ищи.


 
NewWonder ©   (2005-08-01 20:37) [4]

То есть инициализация окна должна быть в dll?


 
XProger ©   (2005-08-01 21:10) [5]

procedure DrawGreed(l: integer); stdcall;


 
cyborg ©   (2005-08-01 21:41) [6]


> [4] NewWonder ©   (01.08.05 20:37)

Не знаю как окно, а огл по идее да.


 
NewWonder ©   (2005-08-01 22:55) [7]


> XProger ©   (01.08.05 21:10) [5]

В заголовке я так и пишу...


 
XProger ©   (2005-08-01 23:06) [8]

Ты пишешь procedure DrawGreed(l: integer); export; stdcall;


 
NewWonder ©   (2005-08-01 23:19) [9]


> XProger ©   (01.08.05 23:06) [8]

Спасибо большое! Попробую переделать :)


 
XProger ©   (2005-08-02 00:13) [10]

NewWonder, да это наврятли поможет ;) Просто код будет корректнее.


 
Ищущий ©   (2005-08-02 12:13) [11]

Попробуй динамическую загрузку библиотеки - хоть кода чуток больше, зато ошибки вылавливать легче.
Как вариант: попробуй написать небольшой интерфейс между библиотекой и приложением и уже через его методы вызывать нужную тебе процедуру.


 
NewWonder ©   (2005-08-02 13:32) [12]

Спасибо, попробую.


 
DR0N ©   (2005-08-03 21:45) [13]

http://dronprogs.mirgames.ru/files/DGLE_src.rar
исходники моего движка...


 
NewWonder ©   (2005-08-05 09:49) [14]

линк почему-то не работает :(


 
NewWonder ©   (2005-08-05 09:52) [15]


> DR0N ©   (03.08.05 21:45) [13]

Мне хотя бы небольшой кусочек кода, чтобы посмотреть, как это делается в принципе...


 
MeF Dei Corvi ©   (2005-08-05 12:33) [16]


> DR0N ©   (03.08.05 21:45) [13]

Решил убрать исходники из скачивания? ;)


 
DR0N ©   (2005-08-07 19:36) [17]

2NewWonder на мыло ща вышлю


 
NewWonder ©   (2005-08-08 21:24) [18]


> DR0N ©

Спасибо большое!



Страницы: 1 вся ветка

Форум: "Игры";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.045 c
1-1134638013
Mamed
2005-12-15 12:13
2006.01.22
resourcestring


3-1132313758
td
2005-11-18 14:35
2006.01.22
создание таблицы запросом


14-1135977049
sergey1
2005-12-31 00:10
2006.01.22
ура, и все таки я ее сделал


2-1136511035
Kolya
2006-01-06 04:30
2006.01.22
Удаление в ListView


14-1135660671
Nic
2005-12-27 08:17
2006.01.22
Интересный глюк





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский