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

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

API: LocalAlloc [D7, WinXP]


emergenter ©   (2003-12-16 21:32:00) 

Не могу подключить API-функцию LocalAlloc()
Что для этого нужно сделать?

LocalAlloc(Flags, Bytes: Word): THandle


emergenter   (2003-12-17 13:50:00) [1]

А чем отличается API функция LocalAlloc() от функции VirtualAlloc()?? и какую функцию лучше испотльзовать именно для динамического массива??


emergenter   (2003-12-17 13:40:00) [2]

Dimka Maslov!SetLengt() использует команду DynArraySatLength из библиотеки System!!!!!!
Что нибудь знаешь про эту функцию!!! Сколько там параметров и какие они?


Dimka Maslov   (2003-12-17 08:37:00) [3]

Если у тебя array of Integer, память под него выделяется функцией SetLength


Slym   (2003-12-17 07:00:00) [4]


type
PIntArray=^TIntArray;
TIntArray=packed array of integer;
var
Mas1:PIntArray;
local:integer;
begin
local:=LocalAlloc(Lmem_Fixed, 32);
Mas1:=LocalLock(local);
mas1^[0]:=67;
LocalUnlock(local);
LocalFree(local);


emergenter   (2003-12-17 02:14:00) [5]

Подскажите пожалуйста как правильно делать..


emergenter   (2003-12-17 02:08:00) [6]

т.е. вот так?
uses Windows;
...
var
per1: integer;
Mas1: array of integer;
...
begin
per1:LocalAlloc(Lmem_Fixed, 32);
end;
ТАК???????
А как быть с массивом MAS1???


Dimaxx   (2003-12-17 01:38:00) [7]

Возвращается хэндл на указатель. Его еще нужно залочить. А Mas2 - массив. Отсюда несоответствие типов. И сначала нужно переменную писать

Mas2:=LocalAlloc(Lmem_Fixed, 32);


emergenter   (2003-12-16 22:03:00) [8]

ОГРОМНОЕ СПАСИБО!!!!!
А его можно вызывать так:

uses Windows;
...
var
Mas1: array of integer;
...
begin
LocalAlloc(Lmem_Fixed, 32): Mas2;
end;

Хочу выделить 32 байта под массив = 8 элементов INTEGER;
Но все равно где то ошибка. Если можно исправьте. Заранее спасибо.


Игорь Шевченко   (2003-12-16 21:49:00) [9]

uses Windows;


Наверх

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