我正在尝试将数字传递到BYTES数组中,但将数字视为字符数组。
这是我的代码:
for(int i=1;i<=totalFiles;i++)
{
BYTE* input = new BYTE[sizeof(DWORD) * sizeof(TCHAR)];
_stprintf_s((TCHAR*)input, sizeof(DWORD) * sizeof(TCHAR), _T("%d"), i);
QueueToThreadPool(input);
}
由于某些原因,当i = 10或i = 11(等等)时,输入仅获得值“ 1”,而不是i的值。
这是为什么?
最佳答案
我猜想您的程序是作为UNICODE程序构建的,但是无论使用什么字符串,都将其视为纯ASCII字符串。因此,第一个UNICODE字符的最高有效字节(为零)被视为字符串的末尾。