0

それでは皆さん、こんにちは。

仮想マシンの win2k に MSVC6 をインストールしましたが、実行可能ファイルは winXP をエミュレートする wine で実行されます (変ですね?)。

EDITフィールドの配列を作成するコードがあります:

        for (i=0; i<NDRIVES_MASK+1; i++) {
            hWndEdit_Nstep[i] = CreateWindowEx (NULL,
                "EDIT",
                "0",
                WS_CHILD|WS_VISIBLE|WS_BORDER,
                150, // x
                45+40*i,  // y
                75,  // w
                40,  // h
                hWnd,
                (HMENU)IDC_NSTEP_EDIT[i],
                GetModuleHandle(NULL),
                NULL);
            sprintf(str, "Число полушагов [%3d]", i);
        };

そして、これらの編集でデータを読み取ろうとする他のコード部分があります。

            for (i=0; i<NDRIVES_MASK+1; i++) {
                DriveN = i;
                printf("--- [DEBUG] - DriveN - %#x\n", DriveN);
                SendMessage(hWndEdit_Nstep[DriveN],
                          WM_GETTEXT,
                          (WPARAM)256,
                          (LPARAM)buftext);
                Nsteps = _wtoi(buftext);
                printf("--- [DEBUG] - Nsteps - %#x\n", Nsteps);
                wprintf(L"--- [DEBUG] - Nsteps - %s\n", buftext);
            }   // for (i, ndrives)

アップデート:

buftext は次のように宣言されます。

wchar_t buftext[256];

私の質問は、1 桁の 10 進数のみを 1 つまたはいくつかの編集で入力すると、それらの数字が正しく読み取られて出力されるということです。しかし、複数桁の小数を入力すると、ゼロとして扱われます。この問題は何についてですか?

前もって感謝します。壊れた英語で申し訳ありません。

4

1 に答える 1

0

buftext の宣言は表示されていませんが、ワイド文字バッファーとして入力し、使用_wtoiするときに使用したと思われますatoi

于 2013-06-17T03:49:01.033 に答える