それでは皆さん、こんにちは。
仮想マシンの 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 つまたはいくつかの編集で入力すると、それらの数字が正しく読み取られて出力されるということです。しかし、複数桁の小数を入力すると、ゼロとして扱われます。この問題は何についてですか?
前もって感謝します。壊れた英語で申し訳ありません。