c++ - 不推荐使用 PTCHAR 的字符串文字
问题描述
我正在处理旧代码,其中将字符串文字分配给PTCHAR
标题中定义的类型变量(指向字符的指针):typedef WCHAR TCHAR, *PTCHAR;
PTCHAR str;
str = _tcsrchr(dir, '\\');
*(str++)=0;
str = TEXT("This is stackoverflow");
我收到警告“不推荐从字符串文字转换为指针到字符(非常量)”,我知道警告即将到来,因为 const 被分配给非常量指针变量,但我不能str CONST(LPCSTR) 因为它在代码中被修改为*(str++)=0;
有没有办法解决这个问题?
解决方案
如果您想稍后修改该字符串,则需要对其进行复制,例如使用_wcsdup()
. 完成后不要忘记free()
它。
推荐阅读
- php - 在php中为每四个分组数组
- sql - sql 查询在 zeppelin 中转换为 spark lang
- python - 检查应用程序是否正在运行,而不是作为后台进程
- php - 如何将 JSON 字符串读取到多维数组
- python - 在python中删除或替换矩阵
- css - 如果 IE 浏览器缩放到 150% 和 175%,则日期字段问题
- spring-boot - 运行 Spring 或其他 Java 网络应用程序时是否应该避免公共网络防火墙异常 (Windows)?
- javascript - 如何生成随机数以产生固定结果?
- c - 当它不返回值时,这个递归函数如何正常工作?
- c# - 试图在一个页面上使用两个 IFrame,每个 IFrame 都指向一个 aspx 页面。如何触发从一个背后的代码到另一个的刷新