【发布时间】:2011-10-24 22:45:44
【问题描述】:
我正在使用一个捕获卡 dll,它导出一个函数,该函数提供一个包含 DIB 的 HGLOBAL 句柄。我想将此DIB写入文件。锁定资源并检索数据指针后,我请求大小,大约为 1mb。但是当我将它写入文件时,它总是 0 字节。这是我第一次使用 HGLOBAL 类型,所以我猜我做错了什么。感谢您的帮助。
char* dibData = (char*)LockResource(DIB);
if(NULL != dibData)
{
SIZE_T dibSize = GlobalSize (DIB);
f = fopen("thedib.dib", "wb");
if (f)
{
n = fwrite(dibData,dibSize,1,f);
fflush(f);
fclose(f);
wrote = true;
}
UnlockResource(DIB);
}
【问题讨论】:
-
SizeofResource(DIB)的结果是什么? msdn.microsoft.com/en-us/library/windows/desktop/ms648048.aspx -
如果我做 DWORD dibSize = SizeofResource (NULL,(HRSRC)DIB);然后 dibsize=0。
-
我想知道 LockResource 是否是必要的,因为这个图像不是来自可执行文件。
-
我想自然的问题是您是如何/从哪里获得 DIB 的?