![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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;