在做港中银人民币跨境支付系统客户化时遇到的问题:
问题:在使用CString的GetBufferSetLength()时没有深刻理解这个函数的原理,在GetBufferSetlengh(5005)时,比如说我所用的字符串需要5000个字节,此时如果我申请了5005个字节,则会在第5001个5002个5003个5004个5005个赋值为'\0',而字符串遇到'\0'就会结束,然后再用该字符串和其它字符串拼接的时候就会无法拼接,因为这个字符串在5001的时候是'\0',就是结束了。
解决思路:
1.一个一个字节的对比,看是否加减有错,计算字符位置的时候有错,没有错误的话排除计算错误。
2.打印日志,把对应的用十六进制打印出来。
本文探讨了在使用CString的GetBufferSetLength方法时可能遇到的问题,特别是当分配的缓冲区长度超过实际需求时导致的字符串截断现象。通过详细分析及两个具体的排查步骤,帮助读者理解这一常见错误并提供了解决方案。
623

被折叠的 条评论
为什么被折叠?



