Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.16;
Скачать: CL | DM;

Вниз

Обращение к элементу массива.   Найти похожие ветки 

 
GEN++ ©   (2004-12-31 04:47) [0]

//основная программа
.....
type
pBase=^byte;
var
Base:pBase;
mas:array[0..999] of byte;

implemitation

procedure proc1();
begin
    Base:=@(mas[0]);
    proc2(base,5);
end;

//в DLL
 .....
procedure proc2(X:pointer; i:word);
type
pY=^byte;
var
Y:pY;
begin
  Y:=pY(base);
  inc(Y,i):=$55;
   
end;

так проходит
А как обратиться к i-му элементу массива mas
в виде база+смещение, например как в СИ

char *Y;
     Y=base;
     (Y+i)*=0x55;


 
Palladin ©   (2004-12-31 08:36) [1]

1ый способ

procedure proc2(X:pointer; i:word);
type
pY=^array [0..0] of byte;
...
 pY(X)[i];
...

2ой способ
 pY(Integer(x)+i)^;


 
Digitman ©   (2004-12-31 08:43) [2]

вообще-то есть предопределенный указательный тип PByteArray, и изобретать свои типы для указательных целей нет никакого резона

//основная программа
.....
var
mas: array[неважно_чего] of byte;

implemitation

procedure proc1();
begin
 proc2(@mas,5);
end;

//в DLL
.....
procedure proc2(Base:PByteArray; Offset:Integer);
begin
  Base[Offset] := $55;
end;


 
GEN++ ©   (2004-12-31 14:01) [3]

>Digitman ©
>Palladin ©
 Спасибо.



Страницы: 1 вся ветка

Текущий архив: 2005.01.16;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.062 c
14-1104383875
КаПиБаРа
2004-12-30 08:17
2005.01.16
Вера в разум тоже религия?


1-1103902152
Chlavik
2004-12-24 18:29
2005.01.16
WIndows.COLOR16 - не правильная декларация .....


14-1104232305
syte_ser78
2004-12-28 14:11
2005.01.16
вопрос по Magiс Forum 1.2


6-1098876726
boban
2004-10-27 15:32
2005.01.16
Доступ к файлам, большое к-во файлов в папке


1-1104742021
leonidus
2005-01-03 11:47
2005.01.16
Получить массив содержащий все поддирректории данной директории