![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
перенести с С в Delphi5 [D5, WinXP]
SDssss © (2006-02-01 11:47:00)Как перевести числа типа 0x68 в cardinal,
a:cardinal;
a:='0x68' не прокатывает
=========перенести с С в Delphi5==============
d:DWORD
BYTE *b_code;
struct
RRR
d:=(DWORD)((BYTE*)b_code + offsetof(RRR, libraryname));
strcpy((char*)name2, Name );
Name:char *Name;
BYTE name2 [200];
evvcom (2006-02-02 08:53:00) [1]
> (@CMAGIC(b_code )^.
Что это? Идея такая: берешь адрес переменной (@b_code), его приводишь к типизированному указателю, а потом разадресовываешь. Если у тебя CMAGIC - типизированный указатель, то правильно так:
CMAGIC(@b_code )^.
Чуешь разницу?
SDssss (2006-02-02 00:16:00) [2]Error:Missing operator or semicolon
видать потому что я сменил описание b_code : PBYTE на pointer
несоотвествие типов
Zeqfreed (2006-02-01 21:05:00) [3]SDssss (01.02.06 20:02) [5]
Какое сообщение об ошибка пишет-то?
SDssss (2006-02-01 20:02:00) [4]
d:= DWORD(@CMAGIC(b_code )^.libraryname);
есть ,курсор указывает на b_code ,ему что-то не понравилось
TUser (2006-02-01 17:19:00) [5]
> Error:Missing operator or semicolon
Забыл поставить ;
SDssss (2006-02-01 17:08:00) [6]Никак компил
d:= DWORD(@CMAGIC(b_code )^.libraryname);
Error:Missing operator or semicolon
былоBYTE *b_code,
но изменил наp_code:pointer;так как перед этим было
p_code:=VirtualAlloc
так не использую
RRR = record
PRRR = ^RRR;
b_code : PBYTE;
d : DWORD;
использую так
type
RRR = packed record
b_code : PBYTE;
d : DWORD;
...
Verg (2006-02-01 12:22:00) [7]RRR = record
PRRR = ^RRR;
b_code : PBYTE;
d : DWORD;
d := DWORD(@PRRR( b_code )^.libraryname);
-----------------------------------------
Name : pchar;
name2 : array[0..199] of byte;
StrCopy( pchar(@name2[0]), Name );
Cash (2006-02-01 11:54:00) [8]Не 0x68, а $68 используй.
a:=$68;