Мои коды ошибок (около 30 кодов ошибок) хранятся в перечислении. Коллега предупредила меня об этом, потому что, если я изменю числовое значение перечисления, весь код, который использует мою DLL, придется перекомпилировать, иначе коды ошибок станут несовместимыми. Я понимаю проблему: перечисления становятся целочисленными константами во время процесса компиляции, поэтому DLL использует значения перечисления, которые были действительны во время компиляции, а не во время выполнения, как я бы предпочел.
Мой вопрос, как я могу сделать лучше. Пожалуйста, помогите мне. Далее я объясню свою идею, но более хорошие идеи приветствуются, если у моей идеи есть серьезные недостатки.
Моя первая идея — создать класс и хранить коды в виде статических констант.
class ErrorCodes
{
public:
static const int ok;
static const int error1;
static const int error2;
};
и определите их значения в .cpp
const int ErrorCodes:ok = 0;
const int ErrorCodes:error1 = -1;
const int ErrorCodes:error2 = -2;
Устраняет ли это вышеуказанную проблему? Что произойдет, если я добавлю или удалю участников? Что произойдет, если я изменю значения кодов ошибок?
Задача ещё не решена.
Других решений пока нет …