|
发表于 2020-6-6 19:15:01
|
显示全部楼层
其实所有的运行时库函数,以前我们习惯的string操作函数printf,sprintf都有其对应的unicode版本,和tchar版本
tchar版本大部分可以这来做,比如strlen,改成_tcslen()也就是说str都变为_tcs
printf可以改为_tprintf,大多数都可以这样处理
涉及参数中包含类似于printf("")这样的字符串常量,都变为_tprintf(_T("..."))这样,
以上都是为了兼容以前的运行时函数来做的
对于一些标准的API函数,比如MessageBoxA和MessageBoxW都被宏替换为MessageBox自动识别环境。参数中尽量使用_T()来包含字符串常量,如果是变量字符串的指针
LPTSTR用于替换unsigned char *
LPCTSTR用于替换const unsigned char *
数组么那就是TCHAR[]
计算字节大小的时候要注意,TCHAR[100],的正确数字是100*sizeof(TCHAR)而不是单纯的100
这样写出来的程序可以应付在两种环境下的编译 |
|