《Visual C++开发实战宝典》例17.8文件发送客户端
发表在C语言图书答疑 2011-02-16
是否精华
版块置顶:
class  CDataPackage
{
public:
DataPackage m_Type; //数据包类型
SendCmd m_Cmd; //文件发送命令
DWORD m_dwSize; //数据报结构大小
DWORD m_dwFileSize; //整个文件大小
DWORD m_dwData; //m_Data的大小
BYTE m_Data[]; //数据缓冲区
};

在void CSendFileClientDlg::RecvFile(CDataPackage *pPackage)函数中有:
if (pPackage != NULL)
{
if (pPackage->m_Type == DP_FILE) //只处理文件数据
{
static CFile file;
if (pPackage->m_Cmd == SC_BEGIN) //开始发送
{
//读取文件名
char szFileName[128] = {0};
memcpy(szFileName, pPackage->m_Data, 128);
我想在memcpy(szFileName, pPackage->m_Data, 128)这条语句中pPackage->m_Data应该是指向存储文件名的首地址,可是为什么它是指向文件名的首地址呢?从来没有把首地址赋值给m_Data,在例17.7与例17.8中都没有为m_Data赋值啊?他们的存储顺序应该是CDataPackage(m_Type,m_Cmd,m_dwSize,m_dwFileSize,m_dwData,m_Data[])->文件名->文件数据,为什么m_Data会指向文件名的首地址?为什么不指向其他地址呢?
分享到:
精彩评论 1
songkun
学分:0 LV1
2011-02-21
沙发
pPackage->m_Data的具体数据含义是由数据包中的pPackage->m_Cmd成员来确定的。可以看一下服务器端的发送代码
首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照