读书人

宏定义的值可以动态修改么? 或者变相

发布时间: 2012-03-05 11:54:01 作者: rapoo

宏定义的值可以动态修改么? 或者变相的解决方法
程序要国际化,大部分的Caption都改好了,结果在一个地方卡住了

#define ECC_LANGUAGE_CODE_CHI "chi"

这个宏定义的chi在英文的情况下要变成eng

有什么方法可以动态改变么?


在另一个头文件里有如下定义:

#define EDS_LANGUAGE_CODE_CHI ECC_LANGUAGE_CODE_CHI

[解决办法]
#define max(a,b) ((a) > (b) ? (a) : (b))
[解决办法]
要国际化;
可以用Project->language->Add
[解决办法]
宏本身的值可以通过#undef和#define重新定义,或者用条件编译也可以。

但对于国际化多语言的程序来说,最简单的就是将语言包定义成配置文件,程序启动时载入这些字符串并进行初始化。
[解决办法]
换成函数可以么?

C/C++ code
//#define ECC_LANGUAGE_CODE_CHI (get_lang_code())//char * get_lang_code(){    // 动态决定当前语言    // ...} 

读书人网 >C++ Builder

热点推荐