如何把一个JPG图片作为资源导入???
解决方案 »
- 关于 ATL 服务程序 暴露接口问题 在线等......
- 请问 我用VC6做了一个浏览器 控件的大小如何自动调成 使它能自动跟随窗口大小的变化啊
- mfc中有以文件夹为最小单位作为文件打开的对话框类吗?
- 问个问题,在开发多语言程序时,界面上的文字该何时指定?
- getsockname的简单问题
- 可以提供一个非阻塞的例子吗?
- 一个ISAPI编译的问题,up有分!
- 基于Dialog应用程序的UPDATE_COMMAND_UI问题,请帮忙!!!
- .bsc can not open. file not found
- 关于debug版和release版的问题,望指点!!!
- 多线程调试的技术问题。
- 为何从DLL的IMPORT TABLE中得不到正确的函数位置
在程序中用LoadResource和LockResource等函数载入
{
try
{
HMODULE hInst=GetModuleHandle("Test.dll");//your dll name
LPCTSTR lpRes = MAKEINTRESOURCE(nIDRes);
HRSRC hRsrc = ::FindResource(hInst, lpRes, "JPG");
if (NULL == hRsrc)
return FALSE;
HGLOBAL hGlobal = LoadResource(hInst, hRsrc);
if (NULL == hGlobal)
return FALSE;
DWORD dwSize = SizeofResource(hInst, hRsrc);
LPVOID lpData = LockResource(hGlobal);
if (NULL == lpData)
return FALSE;
// alloc memory based on file size
HGLOBAL hJPG = ::GlobalAlloc(GMEM_MOVEABLE, dwSize);
LPVOID lpJGP = ::GlobalLock(hJPG);
memcpy(lpJGP, lpData, dwSize);
::GlobalUnlock(hJPG);
//LPVOID pvData = GlobalLock(hGlobal);
//_ASSERTE(NULL != pvData);
// read file and store in global memory
LPSTREAM pstm = NULL;
// create IStream* from global memory
HRESULT hr = CreateStreamOnHGlobal(hJPG, TRUE, &pstm);
_ASSERTE(SUCCEEDED(hr) && pstm);
// Create IPicture from image file
LPPICTURE gpPicture;
hr = ::OleLoadPicture(pstm, dwSize, FALSE, IID_IPicture, (LPVOID *)&gpPicture);
_ASSERTE(SUCCEEDED(hr) && gpPicture);
pstm->Release();
OLE_HANDLE m_picHandle;
gpPicture->get_Handle(&m_picHandle);
return (HBITMAP)m_picHandle;
}
catch (...)
{ }
return NULL;
}