我相信这也发生在我身上,这种行为很奇怪。
我运行的应用程序并没有做它应该做的事情。我开始调试它,现在没有任何代码更改,应用程序只是工作。不知何故,调试器将其唤醒,并将其置于正确的路径上。之后它继续发挥作用。
在这个特定的实例中,我的应用程序应该已经创建了一个日志文件。我在两台电脑上测试过,没有日志!我开始调试它(没有任何代码更改)并且它确实产生了应该的日志。
这可能是什么秘密?
如果重要,我的代码如下。我将一个日志文件写入内存,这是我从中创建实际文件的时间。
memFile.Write("End Log", 8 ); //mark end of log (its filled up prevoiusly)
int len = memFile.GetLength()+ 1;
BYTE *mBlock = memFile.Detach();
CFile file(_T("c:\\app\\log.txt"), CFile::modeCreate | CFile::modeReadWrite );
file.Write( mBlock, len );
file.Flush();
file.Close();
内存日志文件在其定义的不同dll中创建(全局在.cpp文件中)。
__declspec(dllexport) CMemFile memFile(1024*2);
在函数调用中,以下内容写入logfile。
CStringA text;
text.Format("DB Locked %d\r\n", GetCurrentThreadId() );
memFile.Write(text, text.GetLength());
我写入内存文件还有其他几乎相同的调用。