MFC: _AFXWIN_INLINE gib mir "keine überladene Funktion braucht 6 Argumente"
In einer MFC-Anwendung versuche ich, ein Konsolenfenster zu verschieben, das ich zu Debug-Zwecken hinzugefügt habe.
/* 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 );
Ich erhalte diesen Fehler:
Error C2661 'CWnd::MoveWindow': no overloaded function takes 6 arguments
G:\proj\repos\EnterDG\EnterDGDlg.cpp 201
Das Seltsame ist, dass ich den erwarteten Prototyp erhalte, wenn ich den Mauszeiger auf "MoveWindow" setze. Wenn ich jedoch "goto definition" verwende, erhalte ich die Definition, die Sie in den ersten Zeilen sehen (ausgegraut).
Ich habe versucht, "#undef _AFXWIN_INLINE"
Antworten
CWnd :: MoveWindow hat zwei Überladungen, von denen eine 5 Argumente und die andere 2 Argumente enthält. Wie der Fehler anzeigt, gibt es keine Überladung, die 6 Argumente akzeptiert.
Anscheinend versuchen Sie stattdessen, die Windows-API-Funktion MoveWindow aufzurufen . Dies ist eine kostenlose Funktion, daher müssen Sie die CWnd::
Bereichsauflösung löschen. Die Verwendung eines Präfixes für die globale Namespace-Auflösung ist immer sicher, z ::MoveWindow(...);
.