我声明了宏,它可以很容易地复制写入文件的逻辑Log 我最终得到错误C2065:'flog':未声明的标识符。 但是我没有得到log_buffer的这个错误。宏声明给出的错误
我正在使用Visual Studio 2008 IDE。
我在做什么错了?
#ifndef ERROR_LOG_MACRO
#define ERROR_LOG_MACRO 1
#define SETERRORPARAMS char log_buffer[MAX_PATH]; \
char flog[MAX_PATH]; \
FILE *err_log_fp;
/*
Arguments: x (Name of the File)
y (File Path without the Filename)
z (Mode)
*/
#define OPENFILE(x,y,z) strcpy(flog,y); \
strcat(flog,"\\"); \
strcat(flog,x); \
err_log_fp = fopen(flog, z);
#define WRITELOG(x) if(err_log_fp) \
fwrite(log_buffer, sizeof(char), strlen(log_buffer), err_log_fp);
#define CLOSEFILE if(err_log_fp) \
fclose(err_log_fp);
#endif
我甚至试图做
#define OPENFILE(x,y,z) SETERRORPARAMS \
... \
但是,即使这没有奏效。
你可以显示它失败的功能吗? – MByD 2012-02-06 12:36:46
为什么你使用这个宏?为什么不正确地实施这个功能? – 2012-02-06 12:38:54