Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.05;
Скачать: CL | DM;

Вниз

Проблема с GlobalHandle.   Найти похожие ветки 

 
Shirson ©   (2003-04-07 09:01) [0]

У меня есть стрим, который записывает данные в буфер. Затем, этот буфер я пытаюсь положить в клипбоард.


var
ms:TMemoryStream;
pBuff:pByte;
mh:THandle;
begin
...
ms.Read(pbuff,ms.size);
MH:=GlobalHandle(pBuff);
Clipboard.SetAsHandle(49161,MH);


Проблема в том, что на строке MH:=GlobalHandle(pBuff);
Делфи вываливает дебагер. Ошибка - акцес виолэйшн.
Если буфер пустой, всё проходит тихо и спокойно (только на мне пустой буфер). Если в буфере хоть что-то есть, выскакивает дебагер.
В чём грабли?


 
MBo ©   (2003-04-07 09:21) [1]

1) GlobalHandle IMHO не должна иметь дело с непонятным ей буфером от MemoryStream - см. GlobalLock, GlobalAlloc
2) выделена ли память под pBuff?


 
Shirson ©   (2003-04-08 06:55) [2]

>MBo © (07.04.03 09:21)
>1) GlobalHandle IMHO не должна иметь дело с непонятным ей буфером от MemoryStream - см. GlobalLock, GlobalAlloc

А чего в нём непонятного?
Вот такая конструкция, более ломовой вариант, без посредников, прекрасно работает :)
mh:=globalhandle(MS.memory)
Собственно, а фигли нам, кабанам :)


 
Cobalt ©   (2003-04-08 11:19) [3]

The GlobalHandle function retrieves the handle associated with the specified pointer to a global memory block.

HGLOBAL GlobalHandle(
LPCVOID pMem // pointer to the global memory block
);

Parameters

pMem

Points to the first byte of the global memory block. This pointer is returned by the GlobalLock function.

Вот, а в 6-ой Дельфи (по крайней мере) там память выделяется именно с помощью этой Alloc



Страницы: 1 вся ветка

Текущий архив: 2003.06.05;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.019 c
3-13086
I.Ru.Ru
2003-05-19 09:11
2003.06.05
Про DBGrid, Query и временные поля в одном флаконе!


1-13237
Андреев Павел
2003-05-23 13:27
2003.06.05
Порядок удаления


1-13226
vv
2003-05-16 14:05
2003.06.05
Спрятать прогу в Tray


3-13059
Andrey02
2003-05-17 14:30
2003.06.05
Совместимость БД MS Access .mdb и Delphi ADO/BDE


1-13265
AlexKa
2003-05-23 14:45
2003.06.05
Один код для нескольких форм