以下示例中顯示的兩個解決方案中的哪一個是從我的API(Windows DLL)中導出常量的正確方法,以及爲什麼它是更好的選擇?在API中導出常量的正確方法
頭文件
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文件中定義的只有一次,不在每個包含頭文件的鏈接單元中。如我錯了請糾正我。雖然它缺乏可讀性...
我不認爲一個辦法就是多「優」比其他的,而是個人喜好。我會親自使用你的第二個解決方案。 – 2012-02-09 11:39:58
@JoachimPileborg:你跟第二個解決方案看有什麼優勢? – nabulke 2012-02-09 11:42:19
這些值在未來的API版本中是否會發生變化?主要區別(除了第一個的醜陋之外)是第二個區別是客戶端編譯時間不變。 – 2012-02-09 11:44:37