COMPUTERZZZ 2024-09-22 17:10 采纳率: 0%
浏览 5

C++ STRING类型转换成LPCTSTR类型

C++ STRING类型转换成LPCTSTR类型时,居然修改了别的变量的值

img

img


到这里是正确的
在读下一个章节

img

img


我只是想把STRING类型转换成LPCTSTR类型赋给path,居然修改了images_info_list中的值
Images_info_list 跟bstr2没有关联啊,为什么会这样

test.ini文件内容如下:

[IMAGE]
BACKGROUND=img\background.png
PAIMON=img\avatar_paimon.png
[ATLAS]
BEE_LEFT=IMG\BEE_LEFT_%d.PNG,4
[MUSIC]
BACKGROUND=ABAA.WAV

  • 写回答

1条回答 默认 最新

  • 一轮明月照丘壑 2024-09-22 17:11
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    根据您提供的代码和描述,看起来在将STRING类型转换为LPCTSTR类型时并未出现直接的错误或问题。但在您提到在执行某句代码后,images_info_list[0].path的值发生了变化,这似乎是由于某些不易察觉的因素导致的。这里有几个可能的原因和解决方案:

    1. 变量的作用域和生命周期:请确保在将路径赋值给imageinfo.path之前,imageinfo对象已经正确创建并且其生命周期足够长,以避免在后续代码中意外修改或销毁该对象。
    2. 字符串复制问题:在使用_bstr_tLPCTSTR时,确保字符串被正确复制。有时候,如果字符串未被正确复制或管理,可能会导致不可预测的行为。
    3. 外部因素:检查是否有其他代码部分(如其他函数或线程)也在操作这些变量,并可能无意中修改了它们。
    4. 内存管理问题:请确保没有内存管理问题,如内存泄漏或非法访问等,这可能会影响变量的值。
    5. 调试:使用调试器逐步执行代码,查看在执行哪句代码后images_info_list[0].path的值发生了变化。这有助于定位问题所在。
    6. 重新检查ReadSectionValues和ReadSection方法:确认inifile.ReadSectionValues("IMAGE")inifile.ReadSection("IMAGE")(以及ATLAS部分)是否正确读取了数据,并且数据没有被意外修改。
    7. 检查bst_t的使用:确保在使用_bstr_t时遵循正确的使用方式和生命周期管理。特别是在使用完_bstr_t对象后,确保没有内存管理问题。

    由于您提供的代码片段较多且较为零碎,建议尝试重新整理和组织代码,使其结构更清晰,并特别注意上述可能的问题点。同时,利用调试工具逐步跟踪执行过程,以找到具体的问题所在。

    评论

报告相同问题?

问题事件

  • 创建了问题 9月22日

悬赏问题

  • ¥100 X轴为分离变量(因子变量),如何控制X轴每个分类变量的长度。
  • ¥30 求给定范围的全体素数p的(p-2)的连乘积
  • ¥15 VFP如何使用阿里TTS实现文字转语音?
  • ¥100 需要跳转番茄畅听app的adb命令
  • ¥50 寻找一位有逆向游戏盾sdk 应用程序经验的技术
  • ¥15 请问有用MZmine处理 “Waters SYNAPT G2-Si QTOF质谱仪在MSE模式下采集的非靶向数据” 的分析教程吗
  • ¥50 opencv4nodejs 如何安装
  • ¥15 adb push异常 adb: error: 1409-byte write failed: Invalid argument
  • ¥15 nginx反向代理获取ip,java获取真实ip
  • ¥15 eda:门禁系统设计