Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.08.2011, 05:32   #1
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
Вопрос Функция работает не корректно!

Вот функция:

Код:
procedure a_marker_set_color(id_marker : DWORD;  id_color : dword); CDECL;
begin

asm
  mov     ecx, id_marker // id marker
  push    ebx
  mov     eax, ecx
  mov     edx, eax
  and     edx, 0FFFFh
  cmp     ecx, 0FFFFFFFFh
  jz      @@loc_4C3983     //short loc_4C3983
  mov     ebx, edx
  and     eax, 0FFFF0000h
  lea     ecx, ds:0[edx*8]
  shr     eax, 10h
  sub     ecx, ebx
  movzx   ecx, ds:007D7D64h[ecx*8]
  cmp     eax, ecx
  jz      @@loc_4C3986

@@loc_4C3983:                             // CODE XREF: set_color_marker+12j
  or      edx, 0FFFFFFFFh

@@loc_4C3986:                             // CODE XREF: set_color_marker+31j
  cmp     edx, 0FFFFFFFFh
  jnz     @@loc_4C3990
  pop     ebx
  retn

@@loc_4C3990:                             // CODE XREF: set_color_marker+39j
  lea     ecx, ds:0[edx*8]
  mov     eax, id_color
  sub     ecx, edx
  mov     ds: 007D7D40h[ecx*8], eax
  pop     ebx
  retn
end;


end;
Она вызывается из DLL, и патчит память процесса игры, функция патчить то патчит, но после этой функции другая не вызывается! Почему?
VintProg вне форума Ответить с цитированием
Старый 03.08.2011, 14:50   #2
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Блин что не кто не знает?
VintProg вне форума Ответить с цитированием
Старый 03.08.2011, 16:18   #3
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Отладчик знает.

"Особому Программисту Профессионалу" должно быть стыдно не знать про отладчик)
mss вне форума Ответить с цитированием
Старый 03.08.2011, 16:38   #4
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

пользоваться отладчиками результат плохо-го проектирования.
VintProg вне форума Ответить с цитированием
Старый 03.08.2011, 16:44   #5
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

С каких пор отменили указатели в Pascal-е?

Код:
type
  TIntArray = array[0..99999 {<-лениво думать}] of Integer;
  PIntArray = ^TIntArray;
var
  P: PIntArray;
begin
  P := Pointer($007D7D64);
  P[id_marker] := id_color;
end;
Это не перевод кода, а просто пример.

Цитата:
Блин что не кто не знает?
За добровольное копание в таком коде должны доплачивать
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 03.08.2011, 16:45   #6
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Цитата:
Сообщение от VintProg Посмотреть сообщение
пользоваться отладчиками результат плохо-го проектирования
А как тогда называется это?

Код:
ds:0[edx*8]
"Результат хорошего проектирования"?
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 03.08.2011, 16:48   #7
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Цитата:
пользоваться отладчиками результат плохо-го проектирования
Опа).. Вон оно как оказывается)
Т.е. Борланд включила отладчик в свою IDE исключительно из соображений что пользоваться это средой разработки будут заведомо плохие проектировщики)
А ты себя таковым , вероятно, не считаешь).. Тогда зачем ты пользуешь эту IDE ?)
mss вне форума Ответить с цитированием
Старый 03.08.2011, 18:14   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
пользоваться отладчиками результат плохо-го проектирования.
выбейте этот бред из головы.
во-первых: отладка есть важная часть написания любой серьезной программы(и как часть финального тестирования, так и часть частичного).
во-вторых: она позволяет узнать где же именно приложение падает(и в большинстве случаев почему).
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 04.08.2011, 14:54   #9
Zero2525
Пользователь
 
Регистрация: 15.11.2010
Сообщений: 12
По умолчанию

Ну да... Простенькие примерчики могут обойтись и без отладки, а серьёзные, громоздские проекты, без отладки никак... НЕ пользоваться отладчиком - РЕЗУЛЬТАТ ПЛОХОГО ПРОЕКТИРОВАНИЯ... а так же неопытности и непрофессиональности...

Последний раз редактировалось Zero2525; 04.08.2011 в 14:56. Причина: "не" с глаголами - через пробел :)
Zero2525 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не корректно работает прерывание, почему? UkraineChaos Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 01.05.2011 14:11
(паскаль) Обработка кв. матрицы. Программа есть. Не корректно работает функция SUM.. aslanbek999 Помощь студентам 3 02.06.2009 19:51
Программа работает не корректно Neymexa Общие вопросы C/C++ 5 24.12.2008 19:17
не корректно работает функция "если" (+) zetrix Microsoft Office Excel 0 30.10.2006 19:19