不推荐使用 PTCHAR 的字符串文本

String literals to PTCHAR is deprecated

本文关键字:字符串 文本 PTCHAR      更新时间:2023-10-16

我正在处理遗留代码,其中字符串文字被分配给标题中定义的类型PTCHAR(指向字符的指针(的变量:typedef WCHAR TCHAR, *PTCHAR;

PTCHAR str;
str = _tcsrchr(dir, '');
*(str++)=0;
str = TEXT("This is stackoverflow");

我收到警告"从字符串文字到指针到字符(非常量(的转换已弃用", 我知道警告即将到来,因为常量被分配给一个非常量指针变量,但我无法制作 str CONST(LPCSTR(,因为它在代码中被修改为*(str++)=0;

有没有办法解决这个问题?

如果以后要修改字符串,则需要复制它,例如使用_wcsdup().完成后不要忘记free()它。