首页 > 解决方案 > 不推荐使用 PTCHAR 的字符串文字

问题描述

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

PTCHAR str;
str = _tcsrchr(dir, '\\');
*(str++)=0;

str = TEXT("This is stackoverflow");

我收到警告“不推荐从字符串文字转换为指针到字符(非常量)”,我知道警告即将到来,因为 const 被分配给非常量指针变量,但我不能str CONST(LPCSTR) 因为它在代码中被修改为*(str++)=0;

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

标签: c++unicodelpcstr

解决方案


如果您想稍后修改该字符串,则需要对其进行复制,例如使用_wcsdup(). 完成后不要忘记free()它。


推荐阅读