【发布时间】:2014-04-19 04:04:22
【问题描述】:
我正在尝试使用 memcpy 将 TCHAR 数组转换为 BYTE 数组,但 memcpy 函数仅将 1 个 TCHAR 从 tchar 数组复制到字节数组中。
我不知道为什么会这样。
这是一个代码 sn-p。
TCHAR test[] = L"This is a test string, its purpose is to do some testing!";
DWORD testSizeBytes = sizeof(TCHAR) * lstrlen(test);
LPBYTE byteArray = new BYTE[testSizeBytes+1];
memcpy(byteArray,test,testSizeBytes);
如果我使用这个 sn-p,byteArray 将只包含 'T';
任何帮助将不胜感激。
编辑:我解决了这个问题(这是一个错字)。我在这里编写的代码完美无缺。我的编译器在 Windows 虚拟机中,所以我不得不在这里重新输入它并在不知不觉中修正了错字。
【问题讨论】:
-
您如何确定只复制了一个 TCHAR?
-
我试图避免使用任何我需要通过 std:: 访问的东西
-
我确定只有一个是使用调试器和断点复制的。
-
我怀疑你的调试器只显示第一个字符,因为这就是你的指针,它不知道你期望它是一个字符串。你试过检查后续的记忆吗?
标签: c++ windows memory bytearray tchar