HLFX.Ru Forum Страницы (2): [1] 2 »
Показать все 23 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Xash3D (https://hlfx.ru/forum/forumdisplay.php?forumid=14)
-- Xash3D and libraries (https://hlfx.ru/forum/showthread.php?threadid=3291)


Отправлено qpAHToMAS 09-03-2012 в 18:52:

Xash3D and libraries

Я конечно ламер, но не могу полностью понять архитектуру Xash3D и модов для него. Сам Xash3D это исполняемый файл и три библиотеки, все это дело подгружает мод ввиде других DLL файлов (та же Half-life со своей папкой VALVe).
Еще помню что-то вроде "xash_extras", где был еще и небольшой "каркас" поверх движка, но не суть.
Так вот, могу ли я использовать сторонний ЯП (который умеет создавать библиотеки конечно же) для создания мода, который будет "кушать" Xash3D точно так же как он "кушает" Half-life?


Отправлено XaeroX 09-03-2012 в 18:59:

qpAHToMAS
Да, если язык поддерживает calling-conventions _cdecl и _stdcall, а также все стандартные типы данных С.
Из того, что я знаю, это язык ассемблера и, после определенных плясок с бубном, паскаль.

__________________

xaerox on Vivino


Отправлено Дядя Миша 09-03-2012 в 19:19:

Ежли сторонний линекер не сумеет явно вывести GiveFnptrsToDll первым экспортом, то хренвам а не паскаль.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено qpAHToMAS 09-03-2012 в 19:43:

Как бы мне это проверить? Может на болванке какой? Что надо сделать для теста? Библиотеку с какой функцией?

Я могу подключить xash.dll в программу и посмотреть кол-во функций в библиотеке. Показывает, что у xash.dll их 297 .


Отправлено XaeroX 09-03-2012 в 19:49:

qpAHToMAS
Не было у бабы заботы - купила баба порося?

__________________

xaerox on Vivino


Отправлено qpAHToMAS 09-03-2012 в 21:07:

XaeroX, ну, а что? Не на месте же сидеть, без порося темболее.

Добавлено 10-03-2012 в 01:07:

Как оказалось, _cdecl и _stdcall присутствуют, это вообще ходовые функции при работе с DLL.


Отправлено marikcool 09-03-2012 в 21:27:

а зачем это все? возьми hl библиотеки да вырежи себе все в них.


Отправлено qpAHToMAS 10-03-2012 в 11:54:

Цитата:
marikcool писал:
а зачем это все? возьми hl библиотеки да вырежи себе все в них.

Это те, которые из украденного в прошлом веке SDK? Они ведь на CPP.
Мне бы кто архитектуру объяснил, что есть в xash.dll (и других его библиотеках) и что есть в модовых (dlls/cl_dlls если я не ошибаюсь) и как они между собой взаимодействуют.


Отправлено Дядя Миша 10-03-2012 в 14:29:

Цитата:
qpAHToMAS писал:
Мне бы кто архитектуру объяснил, что есть в xash.dll (и других его библиотеках)

в xash.dll есть весь движок. В mainui.dll есть меню, в vgui.dll есть VGUI.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено qpAHToMAS 10-03-2012 в 15:28:

Вытащил названия функций из xash.dll, это нормально, что они с какими-то левыми символами? Только последние две адекватные.
http://paste.org.ru/?nne7zh


Отправлено XaeroX 10-03-2012 в 15:41:

qpAHToMAS
Это задекорированные имена. Погугли инфу о том, как декорирует инфу о функциях компилятор MSVC.
В других компиляторах, кстати, декорирование может быть другим, а ксаш приучен именно к такому.
И да, я не уверен, что паскаль позволяет экспортировать из длл функции-члены классов, а это обязательное условие для ксаша.

__________________

xaerox on Vivino


Отправлено Дядя Миша 10-03-2012 в 16:09:

Цитата:
qpAHToMAS писал:
Только последние две адекватные.

если бы не VGUI, там только последние два и были бы.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 10-03-2012 в 16:26:

Дядя Миша
В клиенте - да, а в сервере тчинки же всякие.

__________________

xaerox on Vivino


Отправлено marikcool 10-03-2012 в 16:56:

это нормально.


Отправлено Дядя Миша 10-03-2012 в 17:10:

Цитата:
XaeroX писал:
В клиенте - да, а в сервере тчинки же всякие.

мы про xash.dll говорим.
Я в ксаш иксти хочу воще всю эту пакость спрятать, чёб не торчало.
Очень меня эти экспорты раздражают. Да и портировать с ними непросто.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Временная зона GMT. Текущее время 11:32. Страницы (2): [1] 2 »
Показать все 23 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024