On-line: Andrey, PSP, tnsr2, гостей 1. Всего: 4 [подробнее..]
АвторСообщение
постоянный участник


Пост N: 382
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 26.05.10 15:18. Заголовок: Как загрузить рисунок из ресурса в переменную?


Подскажите, пожалуйста, как загрузить рисунок из ресурса в переменную. Из файла memoread, а из ресурса exe?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 3 [только новые]


Администратор




Пост N: 1453
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 26.05.10 15:28. Заголовок: Если речь идет о рес..


Если речь идет о ресурсе из собственного exe, и это битмап, то так:

LoadBmpRes(cResName)

#pragma BEGINDUMP 

#include "hbapi.h"

#include "windows.h"

HB_FUNC( LOADBMPRES )
{

HINSTANCE hMod = GetModuleHandle( 0 );
HRSRC hRes = FindResource( hMod,
( LPSTR ) hb_parc( 1 ),
( LPSTR ) RT_BITMAP );
LONG ulLen;
HGLOBAL hglb;
BITMAPFILEHEADER bmpFH;
LPBITMAPINFOHEADER pBmp;
char *szStr;

if( hRes )
{
ulLen = SizeofResource( hMod, hRes );
hglb = LoadResource( hMod, hRes );

bmpFH.bfType = 0x4d42;
bmpFH.bfSize = ulLen + sizeof( bmpFH );
bmpFH.bfReserved1 = bmpFH.bfReserved1 = 0;
bmpFH.bfOffBits = sizeof( BITMAPFILEHEADER ) + sizeof( BITMAPINFOHEADER );

szStr = hb_xgrab( ulLen + sizeof( bmpFH ) );

memcpy( szStr, (char *) &bmpFH, sizeof( bmpFH ) );
pBmp = ( LPBITMAPINFOHEADER ) LockResource( hglb );
switch( pBmp->biBitCount )
{
case 1:
bmpFH.bfOffBits += 2*4;
break;
case 4:
bmpFH.bfOffBits += 16*4;
break;
case 8:
bmpFH.bfOffBits += 256*4;
break;
}
memcpy( szStr + sizeof( bmpFH ), (char *) pBmp, ulLen );

FreeResource( hglb );

hb_retclen( szStr, ulLen + sizeof( bmpFH ) );
hb_xfree( szStr );
}
else
hb_retc( "" );

}


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 383
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 26.05.10 16:40. Заголовок: Ok. Спасибо. ..


Ok. Спасибо.




Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 3046
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 17.04.13 17:37. Заголовок: Pasha А как потом э..


Pasha
А как потом эту картинку (из ресурса) вывести на экран средствами WVT (WVG) ?

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 202
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет