![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Доброго всем!
Имеется код на С++. Помогите перевести данный код на Delphi: Код:
DWORD BaseAddr = 0x400000;
DWORD LASER = BaseAddr + 0x0056E78;
DWORD NAMETAGS = BaseAddr + 0x02E1CE;
BYTE Laser[] = {0x74, 0x04};
BYTE NameTags[] = {0x75, 0x12};
BYTE NopOne[] = {0x90};
.....
WriteProcessMemory(ProcessHandle, (void*)LASER, &Laser, 2, 0);
WriteProcessMemory(ProcessHandle, (void*)NAMETAGS, &NopOne, 1, 0);Интересуют выделенные красным фрагменты... Как это на D7? Заранее спасибо! |
|
#2
|
||||
|
||||
|
Но точнее скажет DJ PhoeniX
Код:
const BaseAddr : DWORD = $400000; LASER : DWORD = BaseAddr + $0056E78; NAMETAGS : DWORD = BaseAddr + $02E1CE; aLaser : array[0..1] of Byte = ($74, 4); aNameTags : array[0..1] of Byte = ($75, $12); aNopOne : Byte = $90; ..... WriteProcessMemory(ProcessHandle, LASER, @aLaser, 2, 0); WriteProcessMemory(ProcessHandle, NAMETAGS, @aNopOne, 1, 0); |
|
#3
|
||||
|
||||
|
aNopOne массив же, хоть и из одного элемента. Хотя по сути, если я правильно помню про массивы в делфи, массив из одного элемента и переменная там хранятся одинаково, если передавать их по указателям. Так что код angvelem должен работать.
Ну и надо проверить, какой тип данных принимает в D* функция WriteProcessMemory. Если Cardinal / DWORD - то всё нормально, если Pointer - соответственно добавить приведение типов. Последний раз редактировалось PhoeniX, 09.11.2011 в 22:56. |
|
#4
|
||||
|
||||
|
Точно, Pointer. Думаю ТС с этой малостью справится сам, вроде всё объяснили.
|