MFC:_AFXWIN_INLINE 给我“没有重载函数需要 6 个参数”
Posted
技术标签:
【中文标题】MFC:_AFXWIN_INLINE 给我“没有重载函数需要 6 个参数”【英文标题】:MFC: _AFXWIN_INLINE give me "no overloaded function takes 6 arguments" 【发布时间】:2020-11-26 09:37:15 【问题描述】:在 MFC 应用程序中,我试图移动我为调试目的添加的控制台窗口。
/* Put here just for reference
_AFXWIN_INLINE void CWnd::MoveWindow(LPCRECT lpRect, BOOL bRepaint)
MoveWindow(lpRect->left, lpRect->top, lpRect->right - lpRect->left,
lpRect->bottom - lpRect->top, bRepaint);
*/
HANDLE hh;
bool oo = CWnd::MoveWindow( hh, 100, 0, 300, 300, true );
我收到此错误:
Error C2661 'CWnd::MoveWindow': no overloaded function takes 6 arguments
G:\proj\repos\EnterDG\EnterDGDlg.cpp 201
奇怪的是,如果我将鼠标指针放在“MoveWindow”上,我会得到预期的原型。但如果我使用“goto definition”,我会得到你在第一行看到的定义(灰色)。
我已尝试“#undef _AFXWIN_INLINE”
【问题讨论】:
【参考方案1】:CWnd::MoveWindow 有两个重载,一个带 5 个参数,另一个带 2 个参数。如错误所示,不存在需要 6 个参数的重载。
您似乎正在尝试调用 Windows API 函数 MoveWindow。这是一个免费功能,因此您需要删除CWnd::
范围分辨率。使用全局命名空间解析前缀始终是安全的,例如:::MoveWindow(...);
。
【讨论】:
以上是关于MFC:_AFXWIN_INLINE 给我“没有重载函数需要 6 个参数”的主要内容,如果未能解决你的问题,请参考以下文章