64,637
社区成员
发帖
与我相关
我的任务
分享
UINT CSendFileDlg::SendFileThread( LPVOID lparam )
{
CSendFileDlg *pthisDlg = (CSendFileDlg*)lparam;
SOCKET SocketRecv = pthisDlg->m_SendSocket;
CFile tmp_ReadFile;
::SendMessage(pthisDlg->m_hWnd , WM_SENDFILEINFO , 0 , 0);
// 发送完消息后,相应函数并没有执行,直接卡死。Postmessage也一样
// ......
}
// SendFileInfo函数用于向接收方发送文件信息(文件名和大小)
LRESULT CSendFileDlg::SendFileInfo( WPARAM wparam , LPARAM lparam )
{
FILEINFO FileInfo;
SOCKET SocketRecv = m_SendSocket;
CFile tmp_ReadFile;
int loopcounter = m_SendFile_List.GetItemCount();
// 向文件接收方发送需要接收的文件目录
for (int i = 0 ; i < loopcounter ; i++)
{
wcscpy_s(FileInfo.FileName ,m_SendFile_List.GetItemText(i , 1));
tmp_ReadFile.Open(m_SendFile_List.GetItemText(i , 3) , CFile::modeRead|CFile::shareDenyNone);
FileInfo.FileSize = tmp_ReadFile.GetLength();
FileInfo.RestFileCount = loopcounter-i-1;
int ret = send(SocketRecv ,(char*)&FileInfo , sizeof(FileInfo),0);
tmp_ReadFile.Close();
}
return 0;
}