|
|
|
Lpvoid
|
|||
|---|---|---|---|
|
#18+
Доброе утро! Подскажите, пожалуйста, какому типу в PB соответствует тип Lpvoid из WinAPI? Заранее благодарен. Юмалов Алексей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 08:50 |
|
||
|
Lpvoid
|
|||
|---|---|---|---|
|
#18+
Для какого WinAPI? Что с Lpvoidом делать будут? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 09:14 |
|
||
|
Lpvoid
|
|||
|---|---|---|---|
|
#18+
Испробуйте тип String или Char ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 10:41 |
|
||
|
Lpvoid
|
|||
|---|---|---|---|
|
#18+
LPVOID GlobalLock( HGLOBAL hMem // address of the global memory object ); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 10:51 |
|
||
|
Lpvoid
|
|||
|---|---|---|---|
|
#18+
SUBROUTINE GlobalLock ( ulong hMem ) LIBRARY "kernel32.dll" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 11:07 |
|
||
|
Lpvoid
|
|||
|---|---|---|---|
|
#18+
Сорри, был неправ. FUNCTION ulong GlobalLock ( ulong hMem ) LIBRARY "kernel32.dll" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 11:10 |
|
||
|
Lpvoid
|
|||
|---|---|---|---|
|
#18+
А зачем GlobalLock ? может можно CopyMemory обойтись? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 11:20 |
|
||
|
Lpvoid
|
|||
|---|---|---|---|
|
#18+
Я всё пытаюсь сохранить экран в файл. ll_DC = GetDC(0) SetNull(l1) ll_DestDC = CreateCompatibleDC(ll_DC) ll_BMP = CreateCompatibleBitmap(ll_DC, li_W, li_H ) SetNull(l1) // Получаю информацию о картинке pbinf.bmiheader.bisize = 40 ii1 = GetDIBits(ll_DC, ll_BMP,0,0, l1, pbinf, 0) l1 = GetLastError() // Копирую l2 = SelectObject( ll_DestDC, ll_BMP ) l1 = GetLastError() b1 = BitBlt( ll_DestDC, 0, 0, li_W, li_H, ll_DC, 0, 0, 13369376 ) l1 = GetLastError() // Выделяю память lpBits = GlobalAlloc(0,pbinf.bmiheader.biSizeImage) // Записываю картинку в помять l1 = GetDIBits(ll_DestDC, ll_BMP,0,li_H,lpBits, pbinf, 0) // Записываю файл // Заголовок файла st_BITMAPFILEHEADER hdr.bfType = 19778 hdr.bfSize = 14 + pbinf.bmiheader.biSize + & pbinf.bmiheader.biClrUsed * 4 + pbinf.bmiheader.biSizeImage hdr.bfReserved1 = 0; hdr.bfReserved2 = 0; hdr.bfOffBits = 14 + pbinf.bmiheader.biSize + pbinf.bmiheader.biClrUsed * 4 // SetNull(s33) b2 = WriteFile(hf, hdr,14, l32,s33) // Заголовок файла st_BITMAPINFOHEADER pbih = pbinf.bmiheader b2 = WriteFile(hf, pbih,40, l32,s33) // dwTotal = pbih.biSizeImage cb = pbih.biSizeImage; hp = lpBits; do while (cb > 32765) //32765 b2 = WriteFile(hf,hp, 32765,l32,s33) cb = cb - 32765; hp = hp + 32765; loop b2 = WriteFile(hf, hp, cb,l32,s33) //Закроем файл и освободим память CloseHandle(hf) GlobalFree(lpBits) Но в файле только шум. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 11:36 |
|
||
|
Lpvoid
|
|||
|---|---|---|---|
|
#18+
Выкинуть последние пару десятков строк ибо бред. По крайней мере hp = hp + 32765; выглядит более чем странно. Можно все собрать в один блоб с помощью RtlMoveMemory И записать одним вызовом WriteFile. Не вижу никакого смысла писать кусами по 32k, если Вы решили не пользоваться встроенной FileWrite. Ну или через FileWrite но тогда уж как обычно - выкусывая из блоба куски по 32k с помощью тормозной blobmid. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 12:40 |
|
||
|
Lpvoid
|
|||
|---|---|---|---|
|
#18+
Не могу найти описание RtlMoveMemory. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 13:41 |
|
||
|
Lpvoid
|
|||
|---|---|---|---|
|
#18+
MSDNRtlMoveMemory The RtlMoveMemory routine moves memory either forward or backward, aligned or unaligned, in 4-byte blocks, followed by any remaining bytes. VOID RtlMoveMemory( IN VOID UNALIGNED *Destination, IN CONST VOID UNALIGNED *Source, IN SIZE_T Length ); Parameters Destination Pointer to the destination of the move. Source Pointer to the memory to be copied. Length Specifies the number of bytes to be copied. Return Value None Headers Declared in wdm.h and ntddk.h. Include wdm.h or ntddk.h. Comments The (Source + Length) can overlap the Destination range passed in to RtlMoveMemory. Callers of RtlMoveMemory can be running at any IRQL if both memory blocks are resident. Otherwise, the caller must be running at IRQL < DISPATCH_LEVEL. See Also RtlCopyMemory ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 14:15 |
|
||
|
Lpvoid
|
|||
|---|---|---|---|
|
#18+
1) У Эрика Эйлинга есть готовый пример - Storing a window into clipboard and save as bitmap http://eric.aling.tripod.com/PB/tips/pbtip35.htm Он старый поэтому некоторые external declarations править надо. Прилагаю мой (правленный) вариант ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 19:06 |
|
||
|
|

start [/forum/topic.php?fid=15&msg=32693675&tid=1338882]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
46ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 372ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...