2010-12-02 56 views
0

我對Windows GUI編程有點新鮮。 我有一些代碼在32位Windows上工作正常,但在64位Win7(相同的exe)上變得很奇怪。來自64位Windows上SendMessage的怪異輸出

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。

+0

我在32位平臺上只編譯一次。我在32位和64位win上運行這個32位exe文件。 – solotim 2010-12-02 09:20:32

回答

0

查看我對該主題的最新評論。