线程如下:
UINT SendAlertInfo(LPVOID pParam)
{
criSecSend.Lock();//锁定临界区 CSocket * sckListen = new CSocket;
CSocket * sckSend = new CSocket;
CFile myFile;
SENDTHREADPARA *pSendThreadPara = NULL;
SOCKET_STREAM_FILE_INFO StreamFileInfo;
WIN32_FIND_DATA         FindFileData; //传入的参数信息
pSendThreadPara = (SENDTHREADPARA*)pParam;
DWORD port = pSendThreadPara->nListenPort;
char i[10];
 _itoa(port,i,10);
OutputDebugString(i);////也就是下面看到的 OutDbStr: 51121
//创建SOCKET/////////release下面好像没有执行
sckListen->Create(pSendThreadPara->nListenPort);
OutputDebugString("监听");
sckListen->Listen();
OutputDebugString("accept");
sckListen->Accept(*sckSend); //创建发送信息文件并发送
if(myFile.Open(pSendThreadPara->strFullFileName, CFile::modeRead | CFile::typeBinary))
{
//»ñµÃ·¢ËÍÎļþÐÅÏ¢
FindClose(FindFirstFile(pSendThreadPara->strFullFileName , &FindFileData));
memset(&StreamFileInfo,0,sizeof(SOCKET_STREAM_FILE_INFO));
strcpy(StreamFileInfo.szFileTitle,myFile.GetFileTitle()); StreamFileInfo.dwFileAttributes     =       FindFileData.dwFileAttributes;
StreamFileInfo.ftCreationTime       =       FindFileData.ftCreationTime;
StreamFileInfo.ftLastAccessTime     =       FindFileData.ftLastAccessTime;
StreamFileInfo.ftLastWriteTime      =       FindFileData.ftLastWriteTime;
StreamFileInfo.nFileSizeHigh        =       FindFileData.nFileSizeHigh;
StreamFileInfo.nFileSizeLow         =       FindFileData.nFileSizeLow; //发送文件信息
sckSend->Send(&StreamFileInfo,sizeof(SOCKET_STREAM_FILE_INFO));
//发送数据
UINT dwRead=0;
byte* data = new byte[1024];
while(dwRead<StreamFileInfo.nFileSizeLow)
{

memset(data,0,1024);
UINT dw=myFile.Read(data, 1024);
sckSend->Send(data, dw);
dwRead+=dw;

}
delete[] data;
myFile.Close();
}

AfxMessageBox("发送文件完成");
sckListen->Close();
sckSend->Close();
// SAFEDELETE(pSendThreadPara); criSecSend.Unlock();
delete sckListen;
sckListen = NULL;
delete sckSend;
sckSend = NULL;
return 0;
}在BoundsChecker下面看到的信息:OutDbStr: 启动发送线程
CREATE_THREAD
OutDbStr: 51121
EXCEPTION(2nd Chance) Exception:  Access Violation
code: C0000005  addr:0043BDBD
-0003BDBD (00400000)
invalid read from 0000000C
EAX:00000000 EBX:00000384 ECX:00000012
EDX:0000000D ESI:00000000 EDI:001BE2D0
ESP:0A2FFC28 EBP:0A2FFC3C EIP:0043BDBD
EFLAGS:00000246
CS:001B DS:0023 ES:0023
SS:0023 FS:0038 GS:0000
Stack dump
0012E7E8:027E3D50:0A2FFF08:0043E2FD
Call stack
!0003BDBD
!0003C04D
!00012928
!0002BD09
!0001CAF0
KERNEL32.dll!0000B2D8
Exception:  Access Violation
EXIT_THREAD
EXIT_THREAD不明白的是,为什么在debug下面正常,在release下面就错误呢,各位帮忙看看了
而且,好像出错的那句是
sckListen->Create(pSendThreadPara->nListenPort);