来自64位Windows的SendMessage的奇怪输出

时间:2010-12-02 09:10:26

标签: windows user-interface message

我是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=""(哎呀,奇怪的字符不能在stackoverflow中显示,无论如何,奇数字符。[0] = 49'1'[1] = 16'')。

一般来说,32位exe程序可以在Win7 64上完美运行,那么,为什么我的程序失败了?感谢。

编辑1 :IsWindowsUnicode(m_hwnd)返回FALSE。

1 个答案:

答案 0 :(得分:0)

请参阅我对该主题的最新评论。