为什么代码不起作用,但在我调试它之后开始工作

时间:2017-07-13 14:24:53

标签: c++ mfc

我相信这也发生在我身上,这种行为很奇怪。

我运行的应用程序并没有做它应该做的事情。我开始调试它,现在没有任何代码更改,应用程序只是工作。不知何故,调试器将其唤醒,并将其置于正确的路径上。之后它继续发挥作用。

在这个特定的实例中,我的应用程序应该已经创建了一个日志文件。我在两台电脑上测试过,没有日志!我开始调试它(没有任何代码更改)并且它确实产生了应该的日志。

这可能是什么秘密?

如果重要,我的代码如下。我将一个日志文件写入内存,这是我从中创建实际文件的时间。

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());

我写入内存文件还有其他几乎相同的调用。

0 个答案:

没有答案