求助:如何在内存中拷贝CDib类? 哪位大侠能帮小弟写一个CDib的拷贝函数,能将内存中的CDib结构拷贝到当前的CDib中,CDib::Copy(CDib*dib) { .....//拷贝 }或者写个"="的重载操作也行。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 /************************************************************************* * * 函数名称: * CopyHandle() * * 参数: * HGLOBAL h - 要复制的内存区域 * * 返回值: * HGLOBAL - 复制后的新内存区域 * * 说明: * 拷贝内存块 * ************************************************************************/HGLOBAL CDIB::CopyHandle (HGLOBAL h){ if (h == NULL) return NULL; // 获取指定内存区域大小 DWORD dwLen = ::GlobalSize((HGLOBAL) h); // 分配新内存空间 HGLOBAL hCopy = ::GlobalAlloc(GHND, dwLen); // 判断分配是否成功 if (hCopy != NULL) { // 锁定 void* lpCopy = ::GlobalLock((HGLOBAL) hCopy); void* lp = ::GlobalLock((HGLOBAL) h); // 复制 memcpy(lpCopy, lp, dwLen); // 解除锁定 ::GlobalUnlock(hCopy); ::GlobalUnlock(h); } return hCopy;} 如何将整个CDib结构拷贝到另一个中呢?被拷贝的也是一个CDib结构,在CDib结构中HGLOBAL m_hGlobal 是private的。 如何在Win7下安装Vista驱动 VC++如何捕获windows的上网进程? 关于端口复用 在 VC MFC 下用流式的方式写文本方式的数据到文件,用哪一个 class 较好?有没有直接可用的? 拷贝复制后出现的莫名其妙的问题 如何在工程中包含*.lib 如何用代码在对话框中生成滚动条,并能够同步化 如何在windows 2000下,查看和设置启动的是哪些程序(类似win98下的msconfig)---在线等待 今天心情很不好,大散分!开发能力与沟通能力那个更重要? vc技术内幕那个版本好一些! 我的vc和msdn连不起来,怎么设置 求购:activeX打印控件
/*************************************************************************
*
* 函数名称:
* CopyHandle()
*
* 参数:
* HGLOBAL h - 要复制的内存区域
*
* 返回值:
* HGLOBAL - 复制后的新内存区域
*
* 说明:
* 拷贝内存块
*
************************************************************************/HGLOBAL CDIB::CopyHandle (HGLOBAL h)
{
if (h == NULL)
return NULL; // 获取指定内存区域大小
DWORD dwLen = ::GlobalSize((HGLOBAL) h);
// 分配新内存空间
HGLOBAL hCopy = ::GlobalAlloc(GHND, dwLen);
// 判断分配是否成功
if (hCopy != NULL)
{
// 锁定
void* lpCopy = ::GlobalLock((HGLOBAL) hCopy);
void* lp = ::GlobalLock((HGLOBAL) h);
// 复制
memcpy(lpCopy, lp, dwLen);
// 解除锁定
::GlobalUnlock(hCopy);
::GlobalUnlock(h);
} return hCopy;
}