我正在研究用C++編碼的遊戲,並且希望能夠在運行時更改語言。目前,該語言是由包含一個頭文件(其中有語言定義),像這樣在編譯時選擇:C++條件包含文件運行時
#include "lan_eng.h"
因此,遊戲不允許一旦客戶端已編譯改變的語言。我的問題是,如果有一種方法可以在運行時有條件地包含文件?我是新的C++,所以起初我在想,我可以做這樣的事情:
#define DEF_LANGUAGE_ENG
//#define DEF_LANGUAGE_DEN
#ifdef DEF_LANGUAGE_ENG
#include "lan_eng.h"
#endif
#ifdef DEF_LANGUAGE_DEN
#include "lan_den.h"
#endif
肯定,使得它更容易維護,但問題是,我相信它只能在編譯時。我希望能夠將所選語言存儲在變量中(在運行時更改),然後使用該變量選擇要包含哪個頭文件。有沒有辦法做到這一點與頭文件,或者我會被迫做一個類?
我希望這不是一個愚蠢的問題;我的搜索沒有給我我期待的結果。
在此先感謝!
預處理器是構建過程的第一個階段。所以,AFAIK,運行時包含頭文件可能是不可能的。 – Mahesh