C++ 删除#include windows.h和相关函数调用后修复编译器错误

C++ 删除#include windows.h和相关函数调用后修复编译器错误,c++,compiler-errors,cross-platform,C++,Compiler Errors,Cross Platform,我正在Windows 10上开发VS2017。我有一个工作台,它带有消息控制台应用程序,但是它有几个Windows库( Windows .H< /COD>和 WINMM .LIB < /C> >)和一个非标准C++库( CONIO .H./COD> >)。我想删除和/或替换这些库,以便能够将C++代码移植到OSX。我将根据需要删除和/或更换/调整任何当前功能 然而,在继续之后,我得到了许多我无法解释的编译器错误。我搜索了很多小时,但找不到任何有用的参考资料,我需要一些帮助来找出这些 从特定的实用

我正在Windows 10上开发VS2017。我有一个工作台,它带有消息控制台应用程序,但是它有几个Windows库(<代码> Windows .H< /COD>和<代码> WINMM .LIB < /C> >)和一个非标准C++库(<代码> CONIO .H./COD> >)。我想删除和/或替换这些库,以便能够将C++代码移植到OSX。我将根据需要删除和/或更换/调整任何当前功能

然而,在继续之后,我得到了许多我无法解释的编译器错误。我搜索了很多小时,但找不到任何有用的参考资料,我需要一些帮助来找出这些

从特定的实用程序头文件(
ConsoleUtils.h
)中删除
#include windows.h
)并删除其使用
windows.h
的函数之一以及对该函数的所有调用后,我会收到以下编译器错误:

  • 在MessageDispatcher.cpp中:
  • 类MessageDispatcher没有成员DispatchMessageW

    嗯,
    MessageDispatcher
    有一个函数
    DispatchMessage()
    (末尾没有“W”)。我真的很困惑。如果我将鼠标指针悬停在
    MessageDispatcher::DispatchMessage
    定义中的红色卷曲线上,将显示一个弹出窗口

    “#定义DispatchMessage DispatchMessageW扩展为DispatchMessageW”

    但是,我的代码中没有任何这样的
    #define
    !我甚至在整个解决方案中对“DispatchMessageW”进行了文本搜索,但没有该文本的实例

  • 在MessageDispatcher.cpp中:
  • 此外,在
    DispatchMessage()
    函数中,两个私有成员不可访问(
    DispatchMessage()
    PriorityQ
    ),这两个成员都已正确声明和定义,并且没有对
    windows.h
    的引用

  • 在另外两个调用
    MessageDispatcher::DispatchMessage()
    的类中,我得到了与上面“1”中描述的相同的错误
  • 如果我将
    #include windows.h
    添加回,所有错误都会消失,项目的构建和运行不会出现问题


    是什么导致了这些错误,我可以做些什么来修复它们?

    在定义
    MessageDispatcher
    类之后,在使用它之前,某些内容包括
    或导致定义
    DispatchMessage
    宏的某些其他windows标头。

    在定义
    MessageDispatcher
    类之后的某个地方,在使用它之前,某些内容包括
    或其他导致定义
    DispatchMessage
    宏的windows标头。@1201程序非常感谢您为我指明了正确的方向!你的帮助是无价的,我修正了所有的错误。如果你能把你的评论变成一个答案,我很乐意接受。