怎样挨个取得LPVOID lpBuf中的数据 lpBuf中已经存得有数据了,怎么样挨个访问呢?就像BYTE * buf 可以用buf[0]...等访问,但lpBuf不行。用BYTE * tmp = (BYTE *)lpBuf来强制转换后,tmp中只有128个数据可以访问,而实际上lpbuf中数据大小应该为160058字节。请高手指教,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用BYTE * tmp = (BYTE *)lpBuf来强制转换后,tmp中只有128个数据可以访问,而实际上lpbuf中数据大小应该为160058字节。????强制类型转换并不会影响内容。 但是好像是影响的,我在调试时发现的。lpBuf里放的是数码相机刚拍完下载下来的数据。SaveFileData(strFile,(LPBYTE)lpBuf,m_lnImageSize);这句可以把数据正确的写到硬盘上。SaveFileData(LPCTSTR lpszFileName,PBYTE pBuf, DWORD dwSize){ CFile file(lpszFileName,CFile::modeCreate|CFile::modeWrite|CFile::typeBinary); file.Write(pBuf,dwSize); file.Close();}我现在像把其中的数据转为BYTE *型的,程序如下:BYTE * TmpBuf,*tmp;tmp = (BYTE *)lpBuf;TmpBuf = new unsigned char[pTransInfo->m_lnImageSize];for(int i=0;i<pTransInfo->m_lnImageSize;i++){ TmpBuf[i] = tmp[i];}但在循环里老是出错,i=128时即弹出信息告诉我非法访问了。请问楼上大哥有啥办法解决?谢谢! 你调试看看m_lnImageSize和pTransInfo->m_lnImageSize的值是否是一样的 分享一下使用C++实现委托事件模式 一个简单的界面问题 移动文件的问题 新手 VS2005 中遇到运行出来的程序界面的中文变成乱码,很急,望高手指点! 给点建议->图片传输的资源权衡:截一张图不压缩成JPG传输,还是压缩后传输??考虑内存和CPU 关于SubclassDlgItem问题! 文本框信息读取 如何在MFC标准动态库中使用定时器Settimer? 请问在任何对象中怎么获得对Doc类的指针? 网络串口调试助手能接收单片机发送过来的数据 孙鑫16章的chat程序不能显示 想定义这样的链表应该怎么实现? 内网公网消息转发一问
????
强制类型转换并不会影响内容。
SaveFileData(strFile,(LPBYTE)lpBuf,m_lnImageSize);这句可以把数据正确的写到硬盘上。SaveFileData(LPCTSTR lpszFileName,PBYTE pBuf, DWORD dwSize)
{ CFile file(lpszFileName,CFile::modeCreate|CFile::modeWrite|CFile::typeBinary);
file.Write(pBuf,dwSize);
file.Close();
}我现在像把其中的数据转为BYTE *型的,程序如下:
BYTE * TmpBuf,*tmp;
tmp = (BYTE *)lpBuf;TmpBuf = new unsigned char[pTransInfo->m_lnImageSize];
for(int i=0;i<pTransInfo->m_lnImageSize;i++)
{
TmpBuf[i] = tmp[i];
}
但在循环里老是出错,i=128时即弹出信息告诉我非法访问了。请问楼上大哥有啥办法解决?谢谢!