首页上一页 1  下一页尾页 1 条记录 1/1页
        《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会指向文件名的首地址?为什么不指向其他地址呢?
                
        	
        
        
    {
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会指向文件名的首地址?为什么不指向其他地址呢?

 
	
                                                 VIP会员
VIP会员 购物车
购物车

 私信
                         私信 
                     发表新帖
发表新帖 立即签到
立即签到 
        		  
        		 
         		 关注
关注
                  回复
 回复 支持(
                	支持( 反对(
                    反对( 
                







 
                     
                     
					 
						 
						 
						 
						