Определите коды ошибок при сохранении двоичной совместимости

Мои коды ошибок (около 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;

Устраняет ли это вышеуказанную проблему? Что произойдет, если я добавлю или удалю участников? Что произойдет, если я изменю значения кодов ошибок?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …