2016-03-01 2 views
-2

Ошибка «Спецификация связи является несовместимой с предыдущим„MonitorFromWindow“» в 32 бите построить VS10 MCBs дается по следующему ДЕЦЛ:Windows7.1 SDK: C2373: «MonitorFromWindow» Переопределение

int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow) 
{ 
    HMONITOR MonitorFromWindow(_In_ HWND hwnd, _In_ DWORD dwFlags); 

    return DialogBoxW(hInstance, MAKEINTRESOURCEW(lpTemplate), nullptr, DlgProc); 
} 

предположенного решение будет похож на тот, который указан here, но здесь может возникнуть некоторая проблема с SDK, хотя предпочтительнее какой-то заголовок.

+0

Вы пропустили вводный текст, который объясняет, что вы делаете, что вы компилируете, каков ваш код и как воспроизводить ошибку. –

+0

@David: Достаточно ли редактирование? Очевидная проблема заключается в том, что у нас пока нет hwnd, но я уверен, что проблема не связана с ошибкой. –

+2

Вы * заявили * MonitorFromWindow, в чем смысл этого? Конечно, он несовместим с реальным объявлением, которое является __declspec (dllimport) и использует соглашение о вызове __stdcall. Вы имели в виду называть это? –

ответ

2

Ошибка свидетельствует о том, что ваша декларация о конфликте MonitorFromWindow противоречит предыдущей декларации. В предыдущей декларации в Winuser.h была объявлена ​​функция с соединением extern "C", это __declspec(dllimport) и имеет соглашение о созыве __stdcall.

Вы должны удалить свое ошибочное объявление и использовать его из файла заголовка.

+0

Интересно: Winuser.h говорит мне: «WINWERAPI HMONITOR WINAPI MonitorFromWindow (__in HWND hwnd, __in DWORD dwFlags);« Соответствует ли это вашему утверждению? –

+0

А: двойное подчеркивание stdcall: получилось. –

+0

Что трудно понять, так это попытаться объявить эту функцию вообще, а не использовать файл заголовка? –

 Смежные вопросы

  • Нет связанных вопросов^_^