我有个传输程序编译成为.EXE时很正常,可是转换成为activex后总是包TSTCON32.EXE内存失败具体代码错误在这一块,有需要完整源码的可以发EMAIL到我的EMAIL,他包含一个客户端和一个服务器端
hImageDisplayThread2 = (HANDLE)_beginthreadex(NULL,0, ImageDisplayThread2,(LPVOID)this,0/* CREATE_SUSPENDED*/,0); 
unsigned __stdcall CTestMemDlg::ImageDisplayThread2(LPVOID lpParam)
{CString sImagePath("E:\\PHOTO\\logo.JPG");
        //打开文件
        CFile hImageFile;
CFileException m_exImage;
hImageFile.Open(sImagePath,CFile::modeRead|CFile::typeBinary,&m_exImage);
int nFileLen = hImageFile.GetLength();

CSocketSession  ImageSocketSession;
   ImageSocketSession.initialize();
   SOCKET sTcpSck = ImageSocketSession.TcpSocket();
   ImageSocketSession.TcpConnect(SERVER_PORT,SERVER_IP);
//发送文件头
memset((void *)&g_UserMsg,0,sizeof(USERMSG));
     _sntprintf(g_UserMsg.szUserID,64,_T("%-64s"),"585858");
    //这里要在ACTIVEX控件中获取网页填入的用户ID,用户名
     _sntprintf(g_UserMsg.szUserName,64,_T("%-64s"),"[email protected]");
         _sntprintf(g_UserMsg.szPassWord,64,_T("%-64s"),"123456");
         _sntprintf(g_UserMsg.szImageLen,64,_T("%-64d"),nFileLen);    
    
 CString sImageName("1501.JPG");
 TCHAR szTmpImageName[128]={0};
         strncpy(szTmpImageName,sImageName.GetBuffer(0),128);
         _sntprintf(g_UserMsg.szImageName,128,_T("%-128s"),szTmpImageName);
         _sntprintf(g_UserMsg.szImageRe,1472,_T("%-1472s"),"@");
     ImageSocketSession.TcpSend(sTcpSck,(char *)&g_UserMsg,MSG_PACKET_LEN);
int nTotalCount = 0;
        char szImageBuff[MSG_PACKET_LEN+1]={0};
//这里会报内存越界********************
while(nTotalCount < nFileLen)
{
    memset(szImageBuff,0,MSG_PACKET_LEN+1);
int nbyte=hImageFile.Read(szImageBuff,MSG_PACKET_LEN);
            ImageSocketSession.TcpSend(sTcpSck,szImageBuff,nbyte);
            nTotalCount += nbyte;
}//end while
        hImageFile.Close();
    ImageSocketSession.TcpClose(sTcpSck);
    ImageSocketSession.destory();
_endthreadex(0);
  return 0;
}