我们编写的程序,有时会遇到需要编译支持Unicode和不支持Unicode的两个版本,在VS2005中可以通过项目的属性进行设置。在变更设置后,我们编译程序时会发现对于字符串的处理,两个版本是完全不一样的。如何能够尽可能不改动源代码呢?这就需要我们在编写程序时使用两种环境下都可以使用的字符串函数。
以下是我目前知道的几点经验:
以下是我目前知道的几点经验:
- 对于常量字符串,使用TEXT()宏或_T()宏进行处理。如:
regKey.QueryDWORDValue(TEXT("Column Count"), nTmp);
regKey.QueryDWORDValue(_T("Column Count"), nTmp); - 对于字符串拷贝程序,使用_tcscpy_s替代strcpy。如:
_tcscpy_s(tnd.szTip , sTip);