我正在尝试将数字传递到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字符的最高有效字节(为零)被视为字符串的末尾。

10-08 08:22