У меня есть приложение MFC, которое записывает огромную иерархию объектов на диск.
Чтобы разобраться в том, что пишется, я подумал о регистрации всех обращений к архиву << через вставку потока и метод .write, заменив их макросами </p>
#pragma once
#ifndef LOGMAGIC
#define LOGMAGIC
class LogTab
{
public:
static int LogIndentCount;
LogTab()
{
LogIndentCount++;
}
~LogTab()
{
LogIndentCount--;
}
};
#define ARINSERT(AR,OBJ) TRACE( "%*s %s\n", LogTab::LogIndentCount, #OBJ); AR << OBJ;
#define ARWRITE(AR,OBJ,SIZE) TRACE("%*s %s\n", LogTab::LogIndentCount, #OBJ); AR.write(OBJ, SIZE);
#endif
Итак, я создал приведенный выше фрагмент кода и поместил его в stdafx.h, но я получаю следующую ошибку:
Ошибка 1, ошибка LNK2001: неразрешенный внешний символ "public: static int
LogTab :: LogIndentCount "(? LogIndentCount @ LogTab @@ 2HA)
Что я делаю не так?
Есть ли лучший способ добиться того, что я делаю?