-2

数値を 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 (など...) の場合、入力は i の値ではなく "1" の値しか取得しません。何故ですか?

4

1 に答える 1

2

あなたのプログラムはUNICODEプログラムとして構築されていると思いますが、文字列を使用しているものは何でもプレーンASCII文字列として扱っています。そのため、最初の UNICODE 文字 (ゼロ) の最上位バイトが文字列の末尾と見なされます。

于 2012-06-24T16:57:14.767 に答える