Форум: "Основная";
Текущий архив: 2005.01.16;
Скачать: [xml.tar.bz2];
ВнизОбращение к элементу массива. Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.037 c