C++ 删除#include windows.h和相关函数调用后修复编译器错误
我正在Windows 10上开发VS2017。我有一个工作台,它带有消息控制台应用程序,但是它有几个Windows库(<代码> Windows .H< /COD>和<代码> WINMM .LIB < /C> >)和一个非标准C++库(<代码> CONIO .H./COD> >)。我想删除和/或替换这些库,以便能够将C++代码移植到OSX。我将根据需要删除和/或更换/调整任何当前功能 然而,在继续之后,我得到了许多我无法解释的编译器错误。我搜索了很多小时,但找不到任何有用的参考资料,我需要一些帮助来找出这些 从特定的实用程序头文件(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。我将根据需要删除和/或更换/调整任何当前功能 然而,在继续之后,我得到了许多我无法解释的编译器错误。我搜索了很多小时,但找不到任何有用的参考资料,我需要一些帮助来找出这些 从特定的实用
ConsoleUtils.h
)中删除#include windows.h
)并删除其使用windows.h
的函数之一以及对该函数的所有调用后,我会收到以下编译器错误:
MessageDispatcher
有一个函数DispatchMessage()
(末尾没有“W”)。我真的很困惑。如果我将鼠标指针悬停在MessageDispatcher::DispatchMessage
定义中的红色卷曲线上,将显示一个弹出窗口
“#定义DispatchMessage DispatchMessageW扩展为DispatchMessageW”
但是,我的代码中没有任何这样的#define
!我甚至在整个解决方案中对“DispatchMessageW”进行了文本搜索,但没有该文本的实例
DispatchMessage()
函数中,两个私有成员不可访问(DispatchMessage()
和PriorityQ
),这两个成员都已正确声明和定义,并且没有对windows.h
的引用
MessageDispatcher::DispatchMessage()
的类中,我得到了与上面“1”中描述的相同的错误#include windows.h
添加回,所有错误都会消失,项目的构建和运行不会出现问题
是什么导致了这些错误,我可以做些什么来修复它们?在定义
MessageDispatcher
类之后,在使用它之前,某些内容包括
或导致定义DispatchMessage
宏的某些其他windows标头。在定义MessageDispatcher
类之后的某个地方,在使用它之前,某些内容包括
或其他导致定义DispatchMessage
宏的windows标头。@1201程序非常感谢您为我指明了正确的方向!你的帮助是无价的,我修正了所有的错误。如果你能把你的评论变成一个答案,我很乐意接受。