Странные выходы из SendMessage на 64-битной Windows - PullRequest
0 голосов
/ 02 декабря 2010

Я новичок в программировании 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.

1 Ответ

0 голосов
/ 03 декабря 2010

Смотрите мои последние комментарии к теме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...