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

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

указатели


AllDer ©   (2006-02-14 00:42:00) 

пишу в памяти


m:=GlobalAlloc(GMEM_ZEROINIT,100);
m2:=GlobalLock(m);


проверочки есть ,все работает 0 и nil

есть функция
// p - указатель откуда брать данные и все длину
копируем в m2

function  Writes(p:pointer; Count: Longint): Longint;
begin
TRY
Move(m2,p,Count);
END;
EXCEPT
messageBox(0,'no write!!!NO FREE FOOD S!!!! :(  FU@&','',0);
END;
end;


пишу в памяти
var
W:BYTE;

W:=255;
Writes(@W,Sizeof(W));
проверяю ,а там нето в памяти ?

пробывал на ура менять  m2 p^ m2^ p неработает
и получаю мессагу ошибки

проверял сбрасывая в файл WriteFile(H,m2^,1,r,nil);
поидее должно символ 'я' а там символ типа chr(0)


begin...end   (2006-02-14 08:00:00) [1]

> AllDer   (14.02.06 00:42)
> Move(m2,p,Count)

Move(p^, m2^, Count)


Delphi_is_cool   (2006-02-14 06:00:00) [2]


var
 W: LongWord;
 PW: Pointer;
 Form1: TForm1;

implementation

{$R *.dfm}

procedure Writes(P: Pointer; Count: Integer);
begin
 CopyMemory(PW, P, Count);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 W := GlobalAlloc(GMEM_ZEROINIT, 100);
 PW := GlobalLock(W);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
 GlobalUnlock(W);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 B: Byte;
begin
 B := $FF;
 Writes(@B, SizeOf(Byte));
 ShowMessage(IntToStr(PLongWord(W)^));
end;


Наверх

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