动态库中 子线程创建目录问的问题。
ac_de 2012-01-13 04:03:29 我在动态库中启用了一个线程。
HANDLE hThread=::CreateThread(NULL,0,ProcQuery,NULL,0,NULL);
CloseHandle(hThread);
然后在线程中创建调用函数 ,在当前目录下创建一个子目录,然后再创建一个2012-1的子目录,
创建的时候报错。
DWORD WINAPI ProcSave(LPVOID lpParameter)
{
///////////////////////
while(true)
{
WaitForSingleObject(hMute,2000);
SaveLog("abcdef");
}
return 0;
}
void SaveLog(CString sInfo)
{
sDirLog=theApp.m_strPath; //得到根目录
sDirLog+="log";
hHandleDir=FindFirstFile(sDirLog,&FindFileData);
if(hHandleDir==INVALID_HANDLE_VALUE)
{
CreateDirectory(sDirLog,NULL);
}
FindClose(hHandleDir);
dt=COleDateTime::GetCurrentTime();
sMonth=dt.Format("%Y-%m");
sDay=dt.Format("%m-%d");
sTime=dt.Format("%H:%M:%S");
//按月创建
sDirLog+="\\2012-01\\";
WIN32_FIND_DATA FindFileData2;
hHandleDir=FindFirstFile(sDirLog,&FindFileData); //执行到这里 就报错了。什么原因???
if(hHandleDir==INVALID_HANDLE_VALUE)
{
CreateDirectory(sDirLog,NULL);
}
FindClose(hHandleDir);
}
创建第一级目录的时候没问题,创建第二级的子目录的时候报错了
上述函数 不再线程中使用 就没问题 什么原因???