Я новичок в программировании Windows GUI.
Я получил код, который отлично работает на 32-битной Windows, но странно работает на 64-битной Win7 (тот же exe).
LWG_CEDIT_GET( m_hwnd, IDC_EDIT_NUM_TEST, g_tmp_str, 4096 );
где LWG_CEDIT_GET определяется как:
#define LWG_CEDIT_GET(h,id,v,m) \
((*((U32*)(v))=(m)),SendMessage(GetDlgItem((h),(id)),EM_GETLINE,0,(LPARAM)(char*)(v))
На WinXP 32 это дает мне g_tmp_str="1"
(конечно, я ввел '1' в текстовое поле в диалоге). Но на Win7 64 это дает мне g_tmp_str=""
(Ой, странный символ не может быть отображен в стеке потока, какой-то странный символ. [0] = 49'1 '[1] = 16' ').
Вообще говоря, 32-битная exe-программа может работать безупречно на Win7 64, так почему моя программа не сработала? Спасибо.
Редактировать 1 : IsWindowsUnicode (m_hwnd) возвращает FALSE.