求助大侠,一段C++ 代码翻译

tanxiangfeng 2013-11-06 05:02:06
void Hello(HBITMAP hBitmap ,TCHAR **pBarCode, INT *nXPos, INT *nYPos, INT *nBarcodeCount, INT nScanIndex)
{
//AfxMessageBox(*pBarCode);
//*nBarcodeCount = 3; //2 后出,3 前出
LPBYTE lpByte=(LPBYTE)GlobalLock(hBitmap); //2009.12.22 Jerry Modified by oscar 2009.12.30
LPBITMAPINFOHEADER lpHeader=(LPBITMAPINFOHEADER)lpByte;
DWORD nImageSize=(lpHeader->biWidth*lpHeader->biBitCount+31)/32*4*lpHeader->biHeight;
INT nColor=lpHeader->biBitCount>8?0:(1<<lpHeader->biBitCount);
BITMAPFILEHEADER bh;
bh.bfReserved1=0;
bh.bfReserved2=0;
bh.bfType=0x4d42;
bh.bfSize=nImageSize+sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+nColor*sizeof(RGBQUAD);
bh.bfOffBits=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+nColor*sizeof(RGBQUAD);

CString strFileName;
CFile m_theFile;

if ((*nBarcodeCount)>0)
strFileName.Format(_T("test\\%s.bmp"), /**pBarCode+0*/_T("Oscar"));
else
strFileName.Format(_T("test\\0000000000_%08d.bmp"),time(0));
strFileName=strFileName;
if(m_theFile.Open(strFileName,CFile::modeCreate|CFile::modeWrite))
{
m_theFile.Write(&bh,sizeof(BITMAPFILEHEADER));
DWORD dwSize = sizeof(BITMAPINFOHEADER)+nColor*sizeof(RGBQUAD)+nImageSize;
DWORD dwPosition = 0;
DWORD dwWrite = 0;
while(1)
{
if ((dwSize - dwPosition) >= 1024)
dwWrite = 1024;
else
dwWrite = dwSize - dwPosition;
m_theFile.Write(lpByte + dwPosition, dwWrite);
dwPosition += dwWrite;
if (dwPosition == dwSize)
break;
}
m_theFile.Close();
}
GlobalUnlock(hBitmap);
return ;
}
...全文
141 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tanxiangfeng 2013-11-07
  • 打赏
  • 举报
回复
谢谢3楼大哥 LPBYTE lpByte=(LPBYTE)GlobalLock(hBitmap); LPBITMAPINFOHEADER lpHeader=(LPBITMAPINFOHEADER)lpByte; 我是想把这两句翻译成C#的代码是什么
熙风 2013-11-06
  • 打赏
  • 举报
回复
  
LPBYTE lpByte=(LPBYTE)GlobalLock(hBitmap);   //分配内存;
LPBITMAPINFOHEADER lpBitmap = (LPBITMAPINFOHEADER)LockResource(hglb); //锁定资源
tanxiangfeng 2013-11-06
  • 打赏
  • 举报
回复
解释 LPBYTE lpByte=(LPBYTE)GlobalLock(hBitmap); LPBITMAPINFOHEADER lpHeader=(LPBITMAPINFOHEADER)lpByte; 这两句,谢谢
IEEE_China 2013-11-06
  • 打赏
  • 举报
回复
解释哪句呢??

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧