Среда выполнения файла условного включения 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

Конечно, это упрощает поддержку, но проблема в том, что я считаю, что это работает только во время компиляции. Я хотел бы иметь возможность сохранить выбранный язык в переменной (которая изменяется во время выполнения), а затем использовать эту переменную, чтобы выбрать, какой файл заголовка включить. Есть ли способ сделать это с помощью файлов заголовков, или мне придется создать класс?

Надеюсь, это не глупый вопрос; мои поиски не дали мне тех результатов, на которые я надеялся.

Заранее спасибо!

5
задан Andy0708 19 January 2012 в 17:17
поделиться