Я объявляю макросы, которые облегчат репликацию логики записи в файл. Журнал В итоге я получаю сообщение об ошибке C2065: «flog»: uneclared identifier. Но я не получаю эту ошибку для log_buffer.Макро декларация, дающая ошибки
Я использую Visual Studios 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
Почему вы используете для этого макросы? Почему бы не реализовать это правильно, с функциями? –