今天写了个调试日志类,写好后生成调试,如果出现了如下错误:
error C2143: 语法错误 : 缺少“;”(在“CHelloWorldApp::AppDllUid”的前面)
仔细检查后发现在.h头文件中的类声明结束时忘了写";"了,添上后编译程序通过.
程序代码
Log.h文件
/*
============================================================================
Name : Log.h
Author : guopeng
Version :
Copyright : QYTX
Description : Log.h - header file
============================================================================
*/
#ifndef LOG_H
#define LOG_H
#include <e32base.h>
#include <flogger.h>
// CLASS DECLARATION
class CLog:public CBase
{
public :
CLog();
~CLog();
void ConstructL();
public :
static void WriteLog(const TDesC &aMsg);
private:
static CLog* NewL();
}
#endif // LOG_H
// End of File
Log.cpp文件
/*
============================================================================
Name : Log.cpp
Author : guopeng
Version :
Copyright : QYTX
Description : Log.cpp - source file
============================================================================
*/
// INCLUDE FILES
// Class include
#include "Log.h"
CLog* CLog::NewL()
{
CLog* self = new (ELeave) CLog();
CleanupStack::PushL(self);
self->ConstructL();
CleanupStack::Pop(self);
return self;
}
void CLog::ConstructL()
{
}
CLog::CLog()
{}
CLog::~CLog()
{}
void CLog::WriteLog(const TDesC & aMsg)
{
RFileLogger iLog;
iLog.Connect();
iLog.CreateLog(_L("test"),_L("log.txt"),EFileLoggingModeAppend);
iLog.Write(aMsg);
iLog.CloseLog();
iLog.Close();
}
// End of File
写日志语句如下:
CLog::WriteLog(_L("aaaa"));
注:使用日志之前,确保日志文件存在,且路径正确.
模拟器上使用log
在目录/epoc32/wins/c/logs下创建目录test,并在下面创建文件log.txt
在手机上使用log
1在pkg文件的同级目录创建文件log.txt
2需要在pkg文件中加入".log.txt"-"c:/logs/log.txt"-目的是创建一个文件夹.
你可以用fileman等工具打开查看这个文件。或者将它传到pc上分析。