Visual Studio 2008资源预处理指令及LANGUAGE指令含义咨询
Visual Studio 2008资源编译指令疑问解答
关于#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_BGR)的逻辑
- 这个预编译指令的判断逻辑和你理解的一致:当未定义
AFX_RESOURCE_DLL(即不是编译资源DLL),或者**定义了AFX_TARG_BGR(即当前目标语言为保加利亚语)**时,后续的保加利亚语字符串表会被包含进编译流程。 - 对于标准EXE应用来说,默认不会定义
AFX_RESOURCE_DLL,所以!defined(AFX_RESOURCE_DLL)为真,此时不管AFX_TARG_BGR是否定义,整个条件都会成立,保加利亚语字符串表会始终被包含。但如果后续项目改为多语言资源DLL模式,或者手动定义了AFX_RESOURCE_DLL,那这个条件就只会在目标语言设为保加利亚语时才生效。
关于LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT的作用
- 这个指令的作用是指定:从它开始,直到下一个
LANGUAGE指令出现前的所有资源,都会被标记为保加利亚语(默认子语言)。编译后这些资源会和对应的语言标识绑定,系统会根据当前系统的语言设置自动加载匹配的资源。
内容的提问来源于stack exchange,提问作者alancc
相关产品推荐
相关产品推荐

