![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Туплю с GlobalAlloc [D7, XP]
Vovan #2 © (2007-01-17 00:41:00)Написано:
GMEM_FIXED
Выделяет фиксированную память. Возвращаемое значение указатель.
Я пишу:
var Buf: Pointer;
Buf := GlobalAlloc(GMEM_FIXED, BufLen);
Мне пишет:
Incompatible types "Cardinal" and "Pointer".
В чём прикол?
Германн (2007-01-17 02:39:00) [1]В догонку. Слэнг пользует словечко "кастить" :)
Германн (2007-01-17 02:24:00) [2]
> Теперь ясно. Надо кастовать.
>
Не спутай с другим глаголом, у которого первые 4 символа такие же :)
Vovan #2 (2007-01-17 01:53:00) [3]Allocates fixed memory. This flag cannot be combined with the GMEM_MOVEABLE or GMEM_DISCARDABLE flag. The return value is a pointer to the memory block. To access the memory, the calling process simply casts the return value to a pointer.
Теперь ясно. Надо кастовать.
Германн (2007-01-17 01:31:00) [4]
> Vovan #2 (17.01.07 01:11) [2]
>
> А почему справка врёт?
>
В Д6 не врёт!
HGLOBAL GlobalAlloc(
UINT uFlags, // object allocation attributes
DWORD dwBytes // number of bytes to allocate
);
...
Return Values
If the function succeeds, the return value is the handle of the newly allocated memory object.
Vovan #2 (2007-01-17 01:11:00) [5]А почему справка врёт?
Zeqfreed (2007-01-17 01:05:00) [6]Наверное, потому, что ф-ция возвращает HGLOBAL, а не Pointer?