我在某一时钟触发事件中打开一文件,并以4096为一个BLOCK,读入文件内容,寻找其中时候有某一字串,如果有就关闭程序,SLEEP 5秒以后再重新启动程序。但是在重新启动程序的时候,系统弹出对话框说内存不能读,是否是CString读CFile 文件出错的原因?case ID_TIMER2:
{
CFile CurrentLogFile;
CFileException e; CurrentLogFile.Open("D:\\SDA\\Projects\\vos1.log", CFile::modeRead | CFile::shareDenyNone, &e);
CurrentLogFile.SeekToBegin(); BYTE buffer[4096];
DWORD dwRead; do
{
dwRead = CurrentLogFile.Read(buffer,4096);
CString CurrentBuffer = buffer;
int m = CurrentBuffer.Find("ATDX_TERMMSK(1[dxxxB1C1])=0x30");
int n = CurrentBuffer.Find("ATDX_TERMMSK(1[dxxxB1C2])=0x30");
if ((m >= 0)||(n >= 0))
{ if(isopen)
{
CWnd *ttt;
ttt = FindWindow(NULL,m_title);
ttt->SendMessage(WM_CLOSE,NULL,NULL);
isopen=false; Sleep(5000);
ShellExecute(NULL,NULL,m_path,NULL,NULL,SW_SHOW);
isopen=true;
}
else
{
ShellExecute(NULL,NULL,m_path,NULL,NULL,SW_SHOW);
isopen=true;
}
} //CurrentBuffer.Empty();
}
while (dwRead > 0);CurrentLogFile.Close();
{
CFile CurrentLogFile;
CFileException e; CurrentLogFile.Open("D:\\SDA\\Projects\\vos1.log", CFile::modeRead | CFile::shareDenyNone, &e);
CurrentLogFile.SeekToBegin(); BYTE buffer[4096];
DWORD dwRead; do
{
dwRead = CurrentLogFile.Read(buffer,4096);
CString CurrentBuffer = buffer;
int m = CurrentBuffer.Find("ATDX_TERMMSK(1[dxxxB1C1])=0x30");
int n = CurrentBuffer.Find("ATDX_TERMMSK(1[dxxxB1C2])=0x30");
if ((m >= 0)||(n >= 0))
{ if(isopen)
{
CWnd *ttt;
ttt = FindWindow(NULL,m_title);
ttt->SendMessage(WM_CLOSE,NULL,NULL);
isopen=false; Sleep(5000);
ShellExecute(NULL,NULL,m_path,NULL,NULL,SW_SHOW);
isopen=true;
}
else
{
ShellExecute(NULL,NULL,m_path,NULL,NULL,SW_SHOW);
isopen=true;
}
} //CurrentBuffer.Empty();
}
while (dwRead > 0);CurrentLogFile.Close();
解决方案 »
- 关于聊天服务器 多线程设计 100分
- GetCursorPos返回错误的坐标
- 音效问题
- 我对Serialize的理解过程如下.请指正..是不是这样的呢?请指出..
- 求助:MFC的对话框中使用shockwaveflash控件播放flash遇到的问题
- DLL中对进程外的ActiveX/COM组件(EXE形式)的对象实例化问题,DLL内不支持调进程外COM??
- 请问sendmessage()和postmessage()有什么区别呀??在线等,急!急!急!急!急!
- 如何在窗口没有焦点时也能显示tooltip
- 高分酬高手!!!DCOM的实现
- 请教:一个关于Win2k的问题?
- 如何使顶层菜单从灰变黑(即可用)?
- 急!如何在VC6的Win32 Dynamic-Link Library向导中调用MFC的资源?能实现吗?分不够可再加!
{
CWnd *ttt;
ttt = FindWindow(NULL,m_title);
ttt->SendMessage(WM_CLOSE,NULL,NULL);
isopen=false;
sleep(5000);
ShellExecute(NULL,NULL,m_path,NULL,NULL,SW_SHOW);
isopen=true;
}
else
{
ShellExecute(NULL,NULL,m_path,NULL,NULL,SW_SHOW);
isopen=true;
}
ttt = FindWindow(NULL,m_title);
ttt->SendMessage(WM_CLOSE,NULL,NULL);
isopen=false;Sleep(5000);
ShellExecute(NULL,NULL,m_path,NULL,NULL,SW_SHOW);
isopen=true;