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

Полезности Исключительно для полезных тем из других разделов.
Темы тут не создаются!
Темы сюда перемещаются из других разделов, и на их старых местах остаются постоянные перенаправления.

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 28.05.2009, 21:47   #1
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

Fertis, дельфи не умеет работать с thiscall типом вызова вроде, так что надо будет всё равно переходники на асме делать...
__________________
Я здесь практически не появляюсь!, Skype - ikskor
xkor вне форума   Ответить с цитированием
Старый 28.05.2009, 22:36   #2
Пользователь
 
Аватар для Fertis
 
Регистрация: 07.03.2009
Сообщений: 64
Сказал Спасибо: 33
Имеет 2 спасибок в 2 сообщенях
Fertis пока неопределено
По умолчанию

Цитата:
Сообщение от xkor Посмотреть сообщение
Fertis, дельфи не умеет работать с thiscall типом вызова вроде, так что надо будет всё равно переходники на асме делать...
Расстроил :'(

А никто это с дельфями несвязывал? Просто учить другие языки времени нету.
Fertis вне форума   Ответить с цитированием
Старый 29.05.2009, 01:29   #3
Пользователь
 
Регистрация: 03.11.2008
Сообщений: 60
Сказал Спасибо: 3
Имеет 107 спасибок в 21 сообщенях
GoldFinch пока неопределено
По умолчанию

переходник для stdcall -> thiscall выглядит просто
у тебя есть указатель на thiscall метод TObj.foo
foo:=GetProcAddress(hEngine,"...");
и для вызова ты пишешь либо функцию
Код:
  function foo(obj:TObj , arg1:T1, arg2:T2);stdcall;
  asm
    pop eax //адрес возврата, временно сохраняем в eax
    pop ecx //аргумент obj, записываем в ecx как того требует __thiscall
    push eax //записываем сохраненный адрес возврата
    jmp [foo] //вызываем метод    
  end;
или метод
Код:
  function TObj.foo( arg1:T1, arg2:T2);stdcall;
  asm
    pop eax //адрес возврата, временно сохраняем в eax
    pop ecx //аргумент obj, записываем в ecx как того требует __thiscall
    push eax //записываем сохраненный адрес возврата
    jmp [foo] //вызываем метод    
  end;
GoldFinch вне форума   Ответить с цитированием
За это сообщение GoldFinch нажился 8 спасибками от:
Старый 29.05.2009, 08:55   #4
Пользователь
 
Аватар для Fertis
 
Регистрация: 07.03.2009
Сообщений: 64
Сказал Спасибо: 33
Имеет 2 спасибок в 2 сообщенях
Fertis пока неопределено
По умолчанию

спасиб, пойду попробую ченить сделать =\ хотя все равно не до конца все понял
Fertis вне форума   Ответить с цитированием
Старый 29.05.2009, 16:00   #5
Местный
 
Аватар для PanAm
 
Регистрация: 18.01.2008
Сообщений: 286
Сказал Спасибо: 24
Имеет 133 спасибок в 80 сообщенях
PanAm
По умолчанию

Fertis,
Прикрути LUA движок к линяги, и можно будет писать аддоны как в ВоВ.
PanAm вне форума   Ответить с цитированием
Старый 29.05.2009, 17:55   #6
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

Murdoc, отвечаем вопросом на вопрос.
на какие хроники расчитан данный пример ?.
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
Старый 29.05.2009, 21:57   #7
Пользователь
 
Регистрация: 23.03.2009
Сообщений: 50
Сказал Спасибо: 10
Имеет 10 спасибок в 1 сообщении
murc пока неопределено
По умолчанию

Народ а как вызывать из енджин.длл функции отправки пакетов ?
murc вне форума   Ответить с цитированием
Старый 02.07.2009, 23:12   #8
Рыцарь
 
Аватар для destructor
 
Регистрация: 26.06.2009
Сообщений: 2,433
Сказал Спасибо: 154
Имеет 692 спасибок в 426 сообщенях
destructor на пути к лучшему
По умолчанию

Цитата:
Сообщение от murc Посмотреть сообщение
Народ а как вызывать из енджин.длл функции отправки пакетов ?
и как её найти?
destructor вне форума   Ответить с цитированием
Старый 02.06.2009, 10:31   #9
Местный
 
Аватар для Sherman
 
Регистрация: 24.04.2008
Сообщений: 364
Сказал Спасибо: 15
Имеет 116 спасибок в 83 сообщенях
Sherman пока неопределено
По умолчанию

Код:
      Engine:=GetModuleHandle('engine.dll');
      UGameEngine_Init := Ptr(Engine+$0025CA40);
      asm
        call UGameEngine_Init
      end;
например так =)
(Код не имеющий к реальности почти никакого отношения)
Sherman вне форума   Ответить с цитированием
Старый 02.07.2009, 23:22   #10
Новичок
 
Регистрация: 03.03.2009
Сообщений: 12
Сказал Спасибо: 6
Имеет 1 спасибку в 1 сообщении
Arseny пока неопределено
По умолчанию

что найти? функцию? или ДЛЛ? если ДЛЛ - то поройся в папке с игрой, если функцию - поройся в ДЛЛке с помощью текстового просмотрщика (типа того, что в тотал командере)
Arseny вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Основные форумы > Полезности



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

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


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

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

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