Форум: "Игры";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];
ВнизПочему этот код вызывает ошибку Найти похожие ветки
← →
Yanis © (2006-01-30 13:18) [0]Ошибка возникает на строчке
glutCreateWindow("Test");
Вот код:
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils, Glut, OpenGL;
procedure Display; cdecl;
begin
glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
glLoadIdentity;
glutWireTeapot(0.5);
glutSwapBuffers;
end;
procedure Reshape(w, h: Integer); cdecl;
begin
glViewport(0, 0, w, h);
end;
procedure Keyboard(key: Byte; x, y: Integer); cdecl;
begin
if key = 27 then
Halt;
end;
var
cmd: array[0..31] of PChar;
i, count: Integer;
begin
for i := 0 to ParamCount do
cmd[i] := PChar(ParamStr(i));
count := ParamCount + 1;
glutInit(@count, @cmd);
glutInitDisplayMode(GLUT_RGB or GLUT_DOUBLE or GLUT_DEPTH);
glutInitWindowPosition(50, 50);
glutInitWindowSize(512, 512);
glutCreateWindow("Test");
glEnable(GL_DEPTH_TEST);
glutDisplayFunc(Display);
glutReshapeFunc(Reshape);
glutKeyboardFunc(Keyboard);
glutMainLoop;
end.
← →
Yanis © (2006-01-30 13:31) [1]Только что выяснилось, что ошика возникает ещё раньше. Вот на этой строчке:
glutInitWindowPosition(50, 50);
← →
Soulghai © (2006-01-30 13:34) [2]{$APPTYPE CONSOLE} - нахрена тебе?
← →
Yanis © (2006-01-30 13:40) [3]2 Soulghai
Да вообще то это мне не нужно. Но это и не мешает. Скорее даже помогает при отладке.
← →
Cash © (2006-01-30 13:43) [4]Yanis © (30.01.06 13:40) [3]:
А ты знаешь что это значит?
← →
Yanis © (2006-01-30 13:46) [5]
> А ты знаешь что это значит?
Что?
{$APPTYPE CONSOLE} что значит?
← →
Cash © (2006-01-30 14:00) [6]Да, ведь Soulghai ничего другого не выделял.
← →
Yanis © (2006-01-30 14:05) [7]Господи, что вы пристали к {$APPTYPE CONSOLE}? Просто у меня был пример, в нём выводилиськ оординаты прямов консоль. Хотел передалть этот пример с использованием glut. Дело то не в консольном приложении.
← →
Cash © (2006-01-30 14:10) [8]Yanis © (30.01.06 14:05) [7]:
Дак вот: нешути с консолью! :)))
Убери эту директиву и попробуй еще раз.
← →
Yanis © (2006-01-30 14:30) [9]Послушайте. За кого вы меня принимаете? Меня это обижет:
> А ты знаешь что это значит?
:)
Я бы не полез в форуме, если бы всё не перепробовал, что в моих силах. Мне кажется что где то, какая то функция не загружена. Ошибка:
> Exception EAccessViolation in module Project1.exe at 00000000.
> Access violation at address 00000000. Read of address 00000000.
>
← →
Yanis © (2006-01-30 14:42) [10]Если кто то возмётся помогать, то могу выслать все файлы проекта включая модули в uses.
← →
XProger © (2006-01-30 14:46) [11]Yanis, линковка процедуры glutInitWindowPosition - динамическая? Линкуешь перед вызовом?
← →
Yanis © (2006-01-30 14:51) [12]2 [11]
Модуль Glut с сайта delphi3d.net Там загрузка происходит при инициализации модуля. т.е. динамическая.
← →
Cash © (2006-01-30 14:52) [13]Yanis © (30.01.06 14:30) [9]:
Sorry men! Be calm and... be not warry, somewho konw this trouble!
Patient!...
← →
XProger © (2006-01-30 14:57) [14]Ладно, поставлю вопрос по-другому... Чему равен адрес процедуры @glutInitWindowPosition до её вызова?
← →
Yanis © (2006-01-30 15:38) [15]Всем спасибо. При помощи XProger"а я разобрался с проблемой. Просто модуль Glut.pas криво написан и там просто небыла реализована загрузка этой процедуры и её адрес всегда был nil. Кому интересно его можно скачать отсуда
http://www.mit.jyu.fi/vesal/kurssit/winohj/htyot/h02/ajkolio/delphi/glunits/GLUT.pas
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.042 c