Symbian中利用c程序方式写文件

没有了printf(),就如同人失去了。。。随便吧。总之,没有printf()使得symbian下的debugging变得很麻烦。当然,我们可以使用那个CEikonEnv::InfoMsg()来代替,但是这个东西只在模拟器上才起作用,而且其功能实在太有限了。所以,我通常都会在工程里加上下面这样几个东西:

代码:

#include <stdio.h>

void trace(const char* aMsg)
{
   FILE* file = fopen("c://debug.log", "a+");
   fwrite(aMsg, sizeof(char), strlen(aMsg), file);
   fclose(file);
}

void trace(const TDesC& aMsg)
{
   FILE* file = fopen("c://debug.log", "a+");
   fwrite(aMsg.Ptr(), sizeof(int), aMsg.Length(), file);
   fclose(file);
}
 

在这里我们利用symbian的stdlib写了两个非常简单的写log文件的function。主要想说明一个问题,那就是stdlib并没有完全被symbian所吞食,其中的一部分功能还是被保留了下来。有些时候用stdlib里的工具远比用symbian的framework要直接的多,这里就是一个最好的例子。

我们还需修改我们的.mmp文件:
代码:

SYSTEMINCLUDE /epoc32/include/libc

LIBRARY estlib.lib
 

别忘了,mmp文件被修改后,还得重新build一次。比如:bldmake bldfiles 或 makmake MyProject wins

最后,别忘了在你退出程序之前,调用下面这一行指令:
代码:

CloseSTDLIB();
 

我通常把它放在我的AppUi的destructor里面。没有这一行东西,你的程序在退出时会报错的。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/meteor0627/archive/2006/11/15/1385944.aspx

你可能感兴趣的:(c,File,library,Symbian,destructor,debugging)