Я конечно ламер, но не могу полностью понять архитектуру Xash3D и модов для него. Сам Xash3D это исполняемый файл и три библиотеки, все это дело подгружает мод ввиде других DLL файлов (та же Half-life со своей папкой VALVe).
Еще помню что-то вроде "xash_extras", где был еще и небольшой "каркас" поверх движка, но не суть.
Так вот, могу ли я использовать сторонний ЯП (который умеет создавать библиотеки конечно же) для создания мода, который будет "кушать" Xash3D точно так же как он "кушает" Half-life?
qpAHToMAS
Да, если язык поддерживает calling-conventions _cdecl и _stdcall, а также все стандартные типы данных С.
Из того, что я знаю, это язык ассемблера и, после определенных плясок с бубном, паскаль.
marikcool писал: а зачем это все? возьми hl библиотеки да вырежи себе все в них.
Это те, которые из украденного в прошлом веке SDK? Они ведь на CPP.
Мне бы кто архитектуру объяснил, что есть в xash.dll (и других его библиотеках) и что есть в модовых (dlls/cl_dlls если я не ошибаюсь) и как они между собой взаимодействуют.
Вытащил названия функций из xash.dll, это нормально, что они с какими-то левыми символами? Только последние две адекватные. http://paste.org.ru/?nne7zh
qpAHToMAS
Это задекорированные имена. Погугли инфу о том, как декорирует инфу о функциях компилятор MSVC.
В других компиляторах, кстати, декорирование может быть другим, а ксаш приучен именно к такому.
И да, я не уверен, что паскаль позволяет экспортировать из длл функции-члены классов, а это обязательное условие для ксаша.
XaeroX писал: В клиенте - да, а в сервере тчинки же всякие.
мы про xash.dll говорим.
Я в ксаш иксти хочу воще всю эту пакость спрятать, чёб не торчало.
Очень меня эти экспорты раздражают. Да и портировать с ними непросто.