2014-11-03 52 views
1

我有兩個多字節字符集MFC項目 - AB。在他們兩個我已經放置MessageBox("hello");代碼行。類似項目中的MessageBox行爲

項目A很高興 - 編譯和運行沒有問題。這很奇怪。如果我按F12導航到它的定義,它將轉到WinUser.h#define MessageBox MessageBoxA。功能MessageBoxA需要4個參數。如果我做跟蹤我我要查個WINCORE.CPP線

int CWnd::MessageBox(LPCTSTR lpszText, LPCTSTR lpszCaption, UINT nType)

最後兩個參數是空的。

項目B編譯器只報告錯誤而不編譯。

'MessageBoxA' : function does not take 1 arguments 

如何理解爲什麼項目A編譯沒有問題?我想這是鏈接技巧,但如何管理這樣的事情?

Show includes由於wincore.cpp不是標題,因此沒有顯示任何信息。

回答

2

CWnd衍生產品中,MessageBox轉到CWnd::MessageBox

但是,如果你在其他班級,其中沒有繼承CWnd。你調用全球MessageBox,它有一個參數,你應該給窗口句柄(或null)作爲第一個參數。