Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Delphi

Ответ
 
Опции темы
Старый 23.09.2009, 07:43   #1
maxturbo
Разработчик
 
Аватар для maxturbo
 
Регистрация: 19.05.2009
Адрес: Россия Иркутская область
Сообщений: 350
Написано 51 полезных сообщений
(для 66 пользователей)
Xors3D для Delphi 7

Вот решил написать враппер движка Xors3D для Delphi 7, вроди немного написал, но когда я пытаюсь запустить его то вылезает ошибка вот ниже код:
program Sample;
uses
  SysUtils,
  xors3dsdk in 'Xors3DSDK.pas';

var cam, cube:integer;
begin
  xGraphics3D(800,600,32,1,0);
  cam:=xCreateCamera();
  cube:=xCreateCube();

  xMoveEntity(cam,0,0,-5);

  xCreateLight();
  xAmbientLight(0,0,0);

 while xKeyHit(1)=0 do
  begin
     xTurnEntity(cube,1,1,1);
     xRenderWorld;
     xFlip;
  end;
end.
Указывает на xFlip и вот что пишет
"Sample.exe faulted with message: "access violation at 0x00407e26: write of address 0x00130000" Process Stopped. Use Step or Run to continue"
Помогите решить эту проблему
(Offline)
 
Ответить с цитированием
Старый 23.09.2009, 17:47   #2
giraf
AnyKey`щик
 
Регистрация: 19.05.2009
Сообщений: 17
Написано 5 полезных сообщений
(для 10 пользователей)
Ответ: Xors3D для Delphi 7

функцию вызываешь из dll каким методом cdecl или stdcall?
Попробуй так:
procedure xFlip();cdecl; external 'xors3d' name '_xFlip@0";
и еще имена функций в dll чувствительны к регистру.
(Offline)
 
Ответить с цитированием
Старый 23.09.2009, 18:01   #3
maxturbo
Разработчик
 
Аватар для maxturbo
 
Регистрация: 19.05.2009
Адрес: Россия Иркутская область
Сообщений: 350
Написано 51 полезных сообщений
(для 66 пользователей)
Ответ: Xors3D для Delphi 7

Неа не помогло ... Может надо еще подобие функций писать что находятся в Xors3D.bb ?
К примеру как эта:
Function xGraphics3D(width, height, depth = 16, mode = 0, vsync = 0)
	hwnd = SystemProperty("AppHWND")
	xSetWND(hwnd)
	DLL_xGraphics3D(width, height, depth, mode, vsync)
End Function
Только я вот не знаю как ее написать
(Offline)
 
Ответить с цитированием
Старый 23.09.2009, 18:05   #4
maxturbo
Разработчик
 
Аватар для maxturbo
 
Регистрация: 19.05.2009
Адрес: Россия Иркутская область
Сообщений: 350
Написано 51 полезных сообщений
(для 66 пользователей)
Ответ: Xors3D для Delphi 7

Собственно вот как я пишу:
Ниже файл Xors3DSDK.pas
unit Xors3DSDK;
interface
procedure xGraphics3D(w:Integer;h:Integer;d:Integer=0;mode:Integer=0;v:Integer=0);cdecl; external 'Xors3D' name '_xGraphics3D@20';
implementation
end.
и вот так каждую команду!!! И как понять имена функций в dll чуствительны к регистру? может их как нибудь прежди временно регестрировать в Windows? Вобщем помогите кто чем может...
(Offline)
 
Ответить с цитированием
Старый 23.09.2009, 18:18   #5
maxturbo
Разработчик
 
Аватар для maxturbo
 
Регистрация: 19.05.2009
Адрес: Россия Иркутская область
Сообщений: 350
Написано 51 полезных сообщений
(для 66 пользователей)
Ответ: Xors3D для Delphi 7

Все всем спасибо проблемка решена Может в дальнейшем будут еще вопросы!!!Просто надо было вызывать функцию методом stdcall а не cdecl В особенности спасибо giraf за мысль
(Offline)
 
Ответить с цитированием
Старый 23.09.2009, 23:23   #6
giraf
AnyKey`щик
 
Регистрация: 19.05.2009
Сообщений: 17
Написано 5 полезных сообщений
(для 10 пользователей)
Ответ: Xors3D для Delphi 7

Бывает когда метод stdcall работает, а бывает и cdecl, все зависит от длл
(Offline)
 
Ответить с цитированием
Старый 31.03.2010, 22:48   #7
firstvirus
Оператор ЭВМ
 
Регистрация: 13.01.2010
Сообщений: 35
Написано 3 полезных сообщений
(для 4 пользователей)
Ответ: Xors3D для Delphi 7

Не стану мусорить созданием новой темы, поэтому напишу тут. Использую unit файл от товарища maxturbo, для написания программы в Delphi. Тестовый код:
  xCreateLog (0,1,'xors_log.html');
  xAppTitle('Test');
  xGraphics3D (800,600,32,0,1);
  xSetBuffer(xBackBuffer());
  xInitDraw();
  vr_SetColorScheme(1);
  testImage:=xLoadImage('test.png');
  repeat
    xCls();
    xDrawImage(testImage,0,0,0);
    xFlip();
  until xKeyHit(KEY_ESCAPE)<>0;
Однако при попытке запуска приложения возникает ошибка. Путем дебага выяснил что переменная testImage пуста, т.е. функция не вернула значение. Так же функция xCreateLog не создает файл лога и соответственно не могу посмотреть в чем дело. Замена stdcall на cdecl не помогла.


Чет нифига не понимаю. Заработало когда опять поменял stdcall на cdecl. Хотя 5 минут назад нифига не происходила. Жаль что вопрос не по теме, но теперь такая же проблема с FastImage.
(Offline)
 
Ответить с цитированием
Старый 31.03.2010, 23:02   #8
Knightmare
Дэвелопер
 
Регистрация: 14.02.2007
Сообщений: 1,471
Написано 824 полезных сообщений
(для 2,920 пользователей)
Ответ: Xors3D для Delphi 7

Насколько я помню, делфи юзает свой велосипед для строк. А двиг юзает стандартные const char *, т.е. тупо массив символов.
(Offline)
 
Ответить с цитированием
Старый 31.03.2010, 23:09   #9
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,355
Написано 2,471 полезных сообщений
(для 6,852 пользователей)
Ответ: Xors3D для Delphi 7

xCreateLog (0,1,PChar('xors_log.html'));
xAppTitle(PChar('Test'));
xLoadImage(PChar('test.png'));
Попробуй.
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
firstvirus (01.04.2010)
Старый 31.03.2010, 23:40   #10
.Squid
Дэвелопер
 
Аватар для .Squid
 
Регистрация: 06.04.2009
Адрес: Запорожье
Сообщений: 1,500
Написано 1,011 полезных сообщений
(для 4,642 пользователей)
Ответ: Xors3D для Delphi 7

А откуда взялась идея в первый аргумент xCreateLog засовывать ноль?
Там допустимые значения от 1 до 7.
__________________

(Offline)
 
Ответить с цитированием
Старый 01.04.2010, 00:08   #11
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,355
Написано 2,471 полезных сообщений
(для 6,852 пользователей)
Ответ: Xors3D для Delphi 7

И к чему приводит этот ноль?
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Старый 01.04.2010, 02:12   #12
.Squid
Дэвелопер
 
Аватар для .Squid
 
Регистрация: 06.04.2009
Адрес: Запорожье
Сообщений: 1,500
Написано 1,011 полезных сообщений
(для 4,642 пользователей)
Ответ: Xors3D для Delphi 7

Ни к чему. Лог не создается, все свободны, всем спасибо.
__________________

(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо .Squid за это полезное сообщение:
firstvirus (01.04.2010), Randomize (01.04.2010)
Старый 01.04.2010, 11:09   #13
firstvirus
Оператор ЭВМ
 
Регистрация: 13.01.2010
Сообщений: 35
Написано 3 полезных сообщений
(для 4 пользователей)
Ответ: Xors3D для Delphi 7

Большое спасибо. Немного посидев и подумав переделал файл заголовков. Нужно было передавать данные в библиотеку не ShortString, a PAnsiChar.
(Offline)
 
Ответить с цитированием
Старый 01.04.2010, 11:57   #14
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,355
Написано 2,471 полезных сообщений
(для 6,852 пользователей)
Ответ: Xors3D для Delphi 7

Дак в Windows повсеместно PChar и PAnsiChar.
Это пишут в любом учебнике Delphi.
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Wrapper Xors3D для Delphi maxturbo Delphi 2 17.01.2010 07:43
Типы в Delphi giraf Delphi 4 18.12.2009 20:42
Megafon и Delphi Freez Delphi 17 17.11.2009 09:36
DLL на Delphi для Blitz WaReZ_MEN Delphi 21 21.04.2008 03:09
Установка -=Delphi=- pipns Delphi 8 11.03.2007 10:07


Часовой пояс GMT +4, время: 13:24.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com