Какое из двух решений, показанных в приведенном ниже примере, является правильным способом экспорта констант из моего API (Windows DLL) и почему это превосходная альтернатива?
Заголовочный файл
namespace ExampleAPI
{
// Solution one
extern const DWORD __declspec(dllexport) AKTION_OK;
extern const DWORD __declspec(dllexport) AKTION_FEHLER;
// Solution two
const DWORD AKTION_FEHLER_DATENBANK = 2;
const DWORD AKTION_FEHLER_XXX = 3;
}
Cpp файл
namespace ExampleAPI
{
// Solution one
const DWORD AKTION_OK = 0;
const DWORD AKTION_FEHLER = 1;
}
Я думаю, что первое решение - лучшая альтернатива, потому что константы определяются только один раз в файле cpp, а не в каждом блоке ссылок, который включает файл заголовка. Поправьте меня если я ошибаюсь. Хотя ему не хватает читабельности ...