代码片断如下:LPSTR strParam[1000]; //全局变量
int nCurIndex; //全局变量BOOL CMyFtpDlg::OnInitDialog()
{
。
nCurIndex=0; //初始化
ZeroMemory(strParam,1000); //初始化
。
}BOOL CMyFtpDlg::DownloadSingle(CFtpConnection *pFtp, CString strFileName, CString strLocFolder,CString strDTime)
{
CString str;
for(int i=0;i<50;i++)
{
....
strParam[nCurIndex]=strLocFile.GetBuffer(strLocFile.GetLength()); str.Format("%d ",nCurIndex);
MessageBox(str+strParam[nCurIndex]); // It's OK.
::AfxBeginThread(InsertData,strParam[nCurIndex],THREAD_PRIORITY_NORMAL);
nCurIndex++;
....
}
}UINT InsertData(LPVOID pFileName)
{
LPSTR strFileName;
strFileName=(LPSTR)pFileName;
AfxMessageBox(strFileName); //不是预期的值。为什么呢?
}为什么参数进入线程以后就变了?我用的是全局变量啊!
int nCurIndex; //全局变量BOOL CMyFtpDlg::OnInitDialog()
{
。
nCurIndex=0; //初始化
ZeroMemory(strParam,1000); //初始化
。
}BOOL CMyFtpDlg::DownloadSingle(CFtpConnection *pFtp, CString strFileName, CString strLocFolder,CString strDTime)
{
CString str;
for(int i=0;i<50;i++)
{
....
strParam[nCurIndex]=strLocFile.GetBuffer(strLocFile.GetLength()); str.Format("%d ",nCurIndex);
MessageBox(str+strParam[nCurIndex]); // It's OK.
::AfxBeginThread(InsertData,strParam[nCurIndex],THREAD_PRIORITY_NORMAL);
nCurIndex++;
....
}
}UINT InsertData(LPVOID pFileName)
{
LPSTR strFileName;
strFileName=(LPSTR)pFileName;
AfxMessageBox(strFileName); //不是预期的值。为什么呢?
}为什么参数进入线程以后就变了?我用的是全局变量啊!
解决方案 »
- 关于线程中用CSocket创建套接字的问题???
- 关于图像标注的,不好说清楚,希望高手能进来看一下
- [求助]CFileFind使用问题
- 想实现一个类似 OutLook2003 的界面, 无什头绪,望指教. 基本目的如下:
- 请教一个关于MSFlexGird控件单行显示的问题!急!非常感谢!
- 关于记录集对象的操作问题
- 我没办法了,编译的问题
- 搬出学生宿舍,工作还没着落,房租好贵,散分。。。。。。
- winform程序多次收到WM_DEVICECHANGE 里的DBT_DEVICEREMOVECOMPLETE消息
- ActiveX控件设计问题,请高手帮忙!
- 如何在另外一个对话框中隐藏或显示主对话框?
- 简单问题请教: 一个ListCtrl控件放在一个Edit控件上面。为什么在Edit控件的位置处会显示一个编辑提示光标。
的实参strParam[nCurIndex]的传递时再加一个指针,试试
这样吧:LPSTR strParam[1000][MAX_PATH]; //全局变量...
strcpy(strParam[nCurIndex], strLocFile);
::AfxBeginThread(InsertData,strParam[nCurIndex],THREAD_PRIORITY_NORMAL);
nCurIndex++;
strLocFile 是局部变量.
strcpy(strParam[nCurIndex], strLocFile);
这句产生异常。