Я работаю над VS2017 в Windows 10. У меня есть работающий FSM с консольным приложением Messaging, которое, однако, имеет пару библиотек Windows (windows.h
и winmm.lib
) и нестандартную библиотеку C ++ (conio.h
).Я хочу удалить и / или заменить эти библиотеки, чтобы иметь возможность портировать код C ++ на OSX.Я буду удалять и / или заменять / адаптировать любую текущую функциональность по мере необходимости.
Однако после продолжения я получаю много ошибок компилятора, которые не могу объяснить.Я искал много часов, но не могу найти никаких полезных ссылок, и мне нужна помощь, чтобы выяснить это.
После того, как я удалил #include windows.h
из определенного файла заголовка утилиты (ConsoleUtils.h
) и удалил одну из его функций, которыеиспользует windows.h
, а также все вызовы этой функции, я получаю следующие ошибки компилятора:
- В MessageDispatcher.cpp:
класс MessageDispatcher имеетнет члена DispatchMessageW
Ну, MessageDispatcher
имеет функцию DispatchMessage()
(без 'W' в конце).Я действительно озадачен этим.Если я наведу указатель мыши на красную фигурную линию в определении MessageDispatcher::DispatchMessage
, всплывающее окно отобразит
"# define DispatchMessage DispatchMessageW расширяется до DispatchMessageW"
ОднакоУ меня нет такого #define
где-нибудь в моем коде!Я даже выполнил текстовый поиск по запросу «DispatchMessageW» во всем решении, и нет ни одного экземпляра этого текста.
В MessageDispatcher.cpp:
Кроме того, внутри функции DispatchMessage()
недоступны два закрытых члена (Discharge()
и PriorityQ
), оба из которых должным образом объявлены и определены, ине имеют ссылки на windows.h
.
В двух других классах, которые вызывают
MessageDispatcher::DispatchMessage()
, я получаю ту же ошибку, как описано в '1' выше.
Если я добавлю #include windows.h
назад, все ошибки исчезнут, иПроект собирается и запускается без проблем.
Что может быть причиной этих ошибок и что я могу сделать, чтобы их исправить?