'MessageBox' : function does not take 3 arguments
2014-03-21 14:49
337 查看
问题描述:今天在一个非MFC类的成员函数中调用MessageBox()函数的时候提示: 'MessageBox' : function does not take 3 arguments
错误的含义很明显,就是说“Messagebox 这个函数不是三个参数,而你在调用的时候却传递了三个参数”;
首先,看看关于它的的定义:
从定义中就可以看出,我们在调用的时候需要指定窗口句柄,因为这不是在MFC环境下;我们可以这样在Win32 Console程序中将hWnd指定为NULL,例如:
大家都知道我们在MFC框架下,使用MessageBox()的时候只需要传递三个函数,这是由于它会自动获取程序窗口的句柄,所以在MFC环境下使用MessageBox的时候就可以不必给出窗口句柄了.
错误的含义很明显,就是说“Messagebox 这个函数不是三个参数,而你在调用的时候却传递了三个参数”;
首先,看看关于它的的定义:
#ifdef UNICODE #define MessageBox MessageBoxW #else #define MessageBox MessageBoxA #endif // !UNICODE
WINUSERAPI int WINAPI MessageBoxExA( __in_opt HWND hWnd, __in_opt LPCSTR lpText, __in_opt LPCSTR lpCaption, __in UINT uType, __in WORD wLanguageId); WINUSERAPI int WINAPI MessageBoxExW( __in_opt HWND hWnd, __in_opt LPCWSTR lpText, __in_opt LPCWSTR lpCaption, __in UINT uType, __in WORD wLanguageId);
从定义中就可以看出,我们在调用的时候需要指定窗口句柄,因为这不是在MFC环境下;我们可以这样在Win32 Console程序中将hWnd指定为NULL,例如:
::MessageBox(NULL,"测试消息框","测试",MB_OK);
大家都知道我们在MFC框架下,使用MessageBox()的时候只需要传递三个函数,这是由于它会自动获取程序窗口的句柄,所以在MFC环境下使用MessageBox的时候就可以不必给出窗口句柄了.
相关文章推荐
- 微软VC各版本BUG: error C2660: 'new' : function does not take 3 parameters
- error C2660: 'new' : function does not take 3 parameters
- 微软VC各版本BUG: error C2660: 'new' : function does not take 3 parameters
- VC GDI+: error C2660: 'new' : function does not take 3 parameters
- 微软VC各版本BUG: error C2660: 'new' : function does not take 3 parameters
- VC GDI+: error C2660: 'new' : function does not take 3 parameters
- 微软VC各版本BUG: error C2660: 'new' : function does not take 3 parameters[转]
- GDI+: error C2660: 'new' : function does not take 3 parameters--MFC
- error C2660: 'Gdiplus::GdiplusBase::operator new' : function does not take 3 parameters
- 'new' : function does not take 3 parameters(转载)
- error C2660: 'new' : function does not take 3 parameters
- 'MessageBoxA' : function does not take 1 parameters
- 【编程语言】MFC--'MessageBoxA' : function does not take 1 parameter
- error C2660: 'Open' : function does not take 12 parameters
- VC GDI+: error C2660: 'new' : function does not take 3 parameters
- error C2660: 'new' : function does not take 3 parameters
- error C2660: 'SaveAs' : function does not take 11 parameters
- <errors>'MessageBoxA' : function does not take 1 parameter
- VS2008中使用GDI+(error C2660: 'new' : function does not take 3 parameters)
- 报错 function refid '%d' does not reference a Lua function