Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

перенести с С в 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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо