-6

我已经("c:\test.ico")使用LoadImage()函数加载了一个图标,我怎样才能得到这个图标的大小?(其中的字节数)我正在使用 c++ & winapi

HRSRC hRes = LoadImage ( NULL, icon, IMAGE_ICON, 0, 0, LR_LOADFROMFILE );
LPVOID lpResLock = LockResource(hRes);

(更准确地说,“lpResLock”指向的数据大小)

========update====== 我知道sizeofresource()但问题是,它要从可执行文件中加载资源。正如我在我的问题中所示,我正在从磁盘文件加载一个独立的本地资源。第二个问题是,hResInfo必须使用FindResource函数创建参数,在我的情况下我正在使用LoadImage()..所以这无济于事

4

1 回答 1

3

谷歌为SizeofResource(). 它是一个标准的win32 API函数IIRC

这是函数原型:

DWORD WINAPI SizeofResource(
  _In_opt_  HMODULE hModule,
  _In_      HRSRC hResInfo
);

参数:

hModule [in, optional] 类型:HMODULE 可执行文件包含资源的模块的句柄。

hResInfo [in] 类型:HRSRC 资源句柄。必须使用 FindResource 或 FindResourceEx 函数创建此句柄。

更新-

然后,来自文件的资源长度 = 文件大小。

使用:GetFileLength()函数编码如下:

DWORD GetFileLength(LPSTR fileName)
{
   DWORD len = 0;
   OFSTRUCT of;
   HFILE hFile = OpenFile(fileName,&of, OF_READ);
   GetFileSize(hFile,&len);
   CloseHandle(hFile);
   return len;
}
于 2012-11-04T06:54:13.573 回答