memcpy仅复制wchar_t数组的前半部分

Cod*_*edd -2 c++ locale wchar-t memcpy

当我尝试在wchar_t字符串上使用memcpy时遇到错误。具体地说,尽管我发送给memcpy的长度与我要复制的字符串的长度正确,但仅复制了字符串中的前半个字符。这给我留下了目标字符串中不好的数据,因为字符串的后半部分充满了从字符串的新创建中遗留下来的垃圾字符。

下面的屏幕截图显示了我正在处理的确切问题:

带有手表的代码的屏幕截图,显示了我的代码运行时得到的值 我唯一能想到的是,这可能与我将非Unicode应用程序的语言环境设置为日语有关,但我要做的第一件事是将语言环境改回英语,问题仍然存在。我觉得我确实缺少一个非常明显的解决方案。有任何想法吗?

M.M*_*M.M 5

  • memcpy 占用多个字节,而不是多个对象
  • 而不是memcpy使用wcslen(src) + 1,有wcscpy
  • 而不是new wchar_t[]那里std::wstring

如果您m_pTextures选择了vectorstd::wstring那么您的代码将更加简单,并且不容易出现此类错误。