如何使用预处理程序定义向应用程序添加简单调试

问题描述

| 我正在WinXP上开发GUI应用程序,但不幸的是std :: cerr / cout无处可去。我想添加一个简单的调试方法,将消息追加到日志文件。 我一直在散列一个几乎可行的解决方案,阅读其他文章。并能够在我的GUI应用程序中调用一个debug()方法。但是,在我试图用来找到解决方案的以下示例应用程序中,甚至都没有做到。 使用: Dev-C ++ v4.9.9.2 WinXP的 以下是我的示例应用程序的结构:
C:.
|   Makefile.win
|   Project1.dev
|
\\---src
    |   bar.cpp
    |   bar.h
    |   foo.cpp
    |   foo.h
    |   main.cpp
    |
    +---inc
    |       debug.h
    |
    \\---log
src / bar.h:
#ifndef BAR_H
#define BAR_H

class Bar
{
public:
    Bar();  
};
#endif
src / bar.cpp:
#include \"bar.h\"

Bar::Bar()
{
//    debug(\"I am Bar.\");
}
src / foo.h和src / foo.cpp相同,只不过将\'Bar \'更改为\'Foo \' 使用我在其他文章中找到的信息... src / inc / debug.h:
#ifndef MY_DEBUG_H
#define MY_DEBUG_H

#include <iostream>
#include <fstream>
#include <string>

#ifndef LOGFILE
#define LOGFILE std::ofstream logfile(\"log/debug.txt\",std::ios::app);
#endif

#ifndef debug
#define debug(s) LOGFILE << \"[\" << __DATE__ << \" \" << __TIME__ \\
            << \"] \" << __FILE__ << \":\" << __LINE__ << \" \" << s << std::endl

#endif

#endif
src / main.cpp:
#include \"inc/debug.h\"
#include \"foo.h\"
#include \"bar.h\"

#include <iostream>

int main (int argc,char **argv)
{
    debug(\"Starting program.\"); 
    Foo *f = new Foo();
    Bar *b = new Bar();
}
当我尝试对此进行编译时,在main.cpp的
debug(\"Starting program.\");
行显示saying6ѭ时出现错误。 有人可以告诉我是什么原因导致此错误,也是一种可以在其他文件/类中应用调试消息的好方法,即取消注释行:
//    debug(\"I am Bar.\");
//    debug(\"I am Foo.\");
分别在bar.cpp和foo.cpp中,并在其他任何地方使用debug()? 谢谢你的帮助。     

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)