IDToString,使用ID得到字符串,你有更好的方法吗?欢迎讨论。
200分讨论:今天停电,不上班真舒服。
MFC有一个我很喜欢的功能,CString::LoadString.这样可以直接使用资源文件。
现在转移阵地从事C++的开发。特别想转换实现这样一来的功能。
通过一个函数(宏)IDToString(STR_ID)得到字符串资源
考虑了一下,有几种选择。
1.用宏变形实现。
使用宏定义字符串,例如:
#define MakeSTRING(a,c,b)const static int a = b; \
const static char *_STR_##a=c;
定义
MakeSTRING(ID_STRING,0x0,"aaaaaaaaaaaaaaaaaaaaaa")
这样的优势是简单,但是不能实现运行时动态加载字符串资源,必须使用静态的宏。
2.使用数组定义,也可以实现用宏定义实现,但是我没有发现一个好方法,只使用一个宏,将ID和数值,字符串对应上。用两个总觉得别扭。把ID转换为字符串我又不喜欢。
3.使用STL(map,vector)实现,用STL实现可以非常舒服的实现,但是我总觉得使用静态的STL 对象成本高了一点。
你有更好的方法吗,清指点。