Вернуться   CoderX :: Forums > Основные форумы > Программинг
Войти через OpenID

Программинг Форум для тем связанных с программированием

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 26.08.2023, 12:18   #1
Новичок
 
Регистрация: 26.08.2023
Сообщений: 3
Сказал Спасибо: 0
Имеет 2 спасибок в 2 сообщенях
Sniper пока неопределено
Вопрос Подключение, написание собственной dll

Ребят, я понимаю, что я на столько трудный.
Я перечитал этот форум, посмотрел отрывки скрип-кодов от xkor, ScythLab и других авторов, пытался читать мануалы, но не понимаю я, что упускаю.
Никак не могу врубиться, как сделать свою dll и чтобы понимала ее l2, как ее туда подключать и что нужно сделать для этого, я не могу понять.
Почему нет такой темы, где будет полноценный пример и все, что нужно сделать для этого.
Вот тоже задался вопросом, клиент lineage 2 interlude.
Хочу, чтобы была dll к примеру с одной функцией, не важно, для примера бы хватило, чтобы к примеру эту функцию можно было вызвать в любом месте interface.u, то есть UnrealScript.
Я читаю, все, читаю, но врубиться не могу, откуда берутся эти там нативные функции в том-же UIScript.ucc, где они есть и как такую свою сделать для этой l2.
И чтобы dll скомпилилась, как такой проект сделать в Vs 2019 - 2022?
Читал, что нужно создавать DLL библиотеку динамической компоновки.
Пытался сделать, но не понимаю, а как ее потом в l2 передавать и как эта dll узнает откуда загружать функцию, что нужно сделать и куда что положить? От l2 нужно dll'ки подключать к проекту? А как их подключать? просто в папку кинуть или что сделать?
Кто-то может сделать банальную функцию которую можно будет вызвать?
Точнее проект с 1 функцией, чтобы он компилился, а ну и объяснить как ее к подключить к клиенту, и чтобы увидело в интерфейсе, а то никак не могу врубиться как это работает.
Толкового ответа найти не могу, все по разному пишут, а половина недоступно, какая-то каша получается.
Уже всю голову сломал.
Очень хочется разобраться.
Знатоки выручайте кто чем сможет, для вам это будет раз плюнуть.
Sniper вне форума   Ответить с цитированием
За это сообщение Sniper нажился спасибкой от:
Старый 26.08.2023, 19:59   #2
Местный
 
Аватар для SeregaZ
 
Регистрация: 16.08.2009
Сообщений: 1,224
Сказал Спасибо: 4
Имеет 229 спасибок в 182 сообщенях
SeregaZ пока неопределено
По умолчанию

боюсь ты опоздал лет на 10-15 здесь кроме меня больше никого нет... сам удивляюсь почему этот форум продолжает быть активным и до сих пор не закрылся медным тазом. не знаю почему продолжаю время от времени открывать эту страничку форума...
по вопросу - не подскажу до этого момента не дошел в свое время. а теперь уже и спросить не у кого.
__________________
хочу картинку в подпись!
SeregaZ вне форума   Ответить с цитированием
За это сообщение SeregaZ нажился спасибкой от:
Старый 31.08.2023, 16:54   #3
Новичок
 
Регистрация: 26.08.2023
Сообщений: 3
Сказал Спасибо: 0
Имеет 2 спасибок в 2 сообщенях
Sniper пока неопределено
По умолчанию

Да все было дело в dllmain, надо было main и загружать через тот-же iidking и все работает теперь.
А для нативных я понял, можно использовать обычный синтаксис:
PHP код:
int MyIntFunction(void) {
        
//...
    
return 0;

Когда будет происходить инъекция в exe файл, попросит импортнуть эту функцию.
Вообще, добивался только того, чтобы можно было с клиента что-то вывести.
В итоге понял, что нужно использовать функцию LoadLibraryA("имя.dll") работает также и GetModuleHandleW(L"имя.dll"): //engine.dll или core.dll или nwindow.dll.
Ничего подключать не нужно, как я думал.
После загрузки dll в exe, уже все сделано.
Остается только знать адреса на нужные участки и загружать по адресу через GetProcAddress(hMyDll, "адрес в загруженной dll") и приводить к нужному типу который возвращает этот адрес.
Чтобы посмотреть эти адреса можно открыть таблицу экспорта в каком-нибудь PE Explorer.
Sniper вне форума   Ответить с цитированием
За это сообщение Sniper нажился спасибкой от:
Ответ

  CoderX :: Forums > Основные форумы > Программинг



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

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


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

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!