1. 程式人生 > >GetDlgItem返回NULL的原因

GetDlgItem返回NULL的原因

今天要移植一個程式到WINDOWS上面,用的是MFC。

其實就是給Dialog上面加按鈕,新增新功能。

我直接給Dialog新增按鈕但是在OnInitDialog裡面

CWnd* p1 = GetDlgItem(IDC_BTN_XXX);的時候,返回NULL,我不解,

又換了個之前已經存在的ID,還是返回NULL。為什麼呢?我有辦法奮鬥

Baidu, google.

有的Blog說什麼只兩個工程的按鈕ID相同的問題,我改了,發現還是為NULL。

Microsoft說是MFC的一個BUG,需要修改.rc檔案。

我都試過了,還是錯誤。

不得已,我使用終極攻略,也就是大絕招,將另一個工程相同的程式碼移植過來(在另一個工程裡面是OK的),還是返回NULL。

為什麼???我頭太了,暈了。。。。。

當時簡直五雷轟頂,不知所措發火。。。。。。一身冷汗。。哭

忽然靈光一現,資原始檔的問題。。

因為這個工程編譯語言是英文,但是之前從svn上面check下來的是帶有語言包DLL的,

因此工程會用語言包的DLL,代替工程裡面的資原始檔。當然你新新增到BUTTON返回NULL,而老的BUTTON返回指標來。

然後我資源DLL刪除後,OK,驗證了我的結論,哈哈。。。

這個小問題折騰了我2個小時,,,,。。鄙視一下。。~~~微笑