Win32 использует макросы с параметрами для этого, что нарушает код C ++

0

У меня проблема с afxv_32.h. VS 2012 не может найти AFX_INLINE и HTASK. Указывается, что "Win32 использует макросы с параметрами для этого, что нарушает C++ код". По-видимому, AFX_INLINE - это макрос. Я искал его в течение долгого времени, и я его не нашел. Вы хоть представляете, как с этим бороться?

    // Win32 uses macros with parameters for this, which breaks C++ code.
    #ifdef GetWindowTask
    #undef GetWindowTask
    AFX_INLINE HTASK GetWindowTask(HWND hWnd)
        { return (HTASK)(DWORD_PTR)::GetWindowThreadProcessId(hWnd, NULL); }
    #endif

    // Win32 uses macros with parameters for this, which breaks C++ code.
    #ifdef GetNextWindow
    #undef GetNextWindow
    AFX_INLINE HWND GetNextWindow(HWND hWnd, UINT nDirection)
        { return ::GetWindow(hWnd, nDirection); }
    #endif

    // Avoid mapping CToolBar::DrawState to DrawState[A/W]
    #ifdef DrawState
    #undef DrawState
    AFX_INLINE BOOL WINAPI DrawState(HDC hdc, HBRUSH hbr, DRAWSTATEPROC lpOutputFunc,
        LPARAM lData, WPARAM wData, int x, int y, int cx, int cy, UINT fuFlags)
    #ifdef UNICODE
        { return ::DrawStateW(hdc, hbr, lpOutputFunc, lData, wData, x, y, cx, cy,
            fuFlags); }
    #else
        { return ::DrawStateA(hdc, hbr, lpOutputFunc, lData, wData, x, y, cx, cy,
            fuFlags); }
    #endif
    #endif

    // Avoid mapping CStatusBar::DrawStatusText to DrawStatusText[A/W]
    #ifdef DrawStatusText
    #undef DrawStatusText
    AFX_INLINE void WINAPI AfxDrawStatusTextA(HDC hDC, LPRECT lprc, LPCTSTR szText,
        UINT uFlags);
    AFX_INLINE void WINAPI AfxDrawStatusTextW(HDC hDC, LPRECT lprc, LPCTSTR szText,
        UINT uFlags);
    AFX_INLINE void WINAPI DrawStatusText(HDC hDC, LPRECT lprc, LPCTSTR szText,
        UINT uFlags) 
    #ifdef UNICODE
        { ::AfxDrawStatusTextW(hDC, lprc, szText, uFlags); }
    #else
        { ::AfxDrawStatusTextA(hDC, lprc, szText, uFlags); }
    #endif
    #endif

    // FreeResource is not required on Win32 platforms
    #undef FreeResource
    AFX_INLINE BOOL WINAPI FreeResource(_In_ HGLOBAL) { return TRUE; }
    // UnlockResource is not required on Win32 platforms
    #undef UnlockResource
    AFX_INLINE int WINAPI UnlockResource(HGLOBAL) { return 0; }
Теги:
macros
visual-studio-2012

1 ответ

0

Эти макросы вы найдете в afxisapi.h.

  • 0
    Да, спасибо. Это то, что я сделал сначала, но это не сработало, потому что у меня не было этого файла на моем компьютере. Так что я создал его и включил его, но не работал ни
  • 0
    Теперь он входит в отдельный пакет AFAIK. Я не знаю, где вы можете найти это все же.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню