我是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。
答案 0 :(得分:0)
请参阅我对该主题的最新评论。