删除#include windows.h和相关函数调用后

时间:2019-01-31 18:57:38

标签: c++ compiler-errors cross-platform

我正在Windows 10上使用VS2017。我有一个使用Messaging控制台应用程序的FSM,但是该应用程序具有几个Windows库(windows.hwinmm.lib)和一个非标准C ++库(conio.h)。我想删除和/或替换这些库,以便能够将C ++代码移植到OSX。我将根据需要删除和/或替换/适应任何当前功能。

但是,在继续操作之后,我遇到许多无法解释的编译器错误。我搜索了许多小时,但找不到任何有用的参考,因此需要一些帮助来弄清这些参考。

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

  1. 在MessageDispatcher.cpp中:
  

MessageDispatcher类没有成员DispatchMessageW

好吧,MessageDispatcher具有函数DispatchMessage()(末尾没有'W')。我对此感到非常困惑。如果将鼠标指针悬停在MessageDispatcher::DispatchMessage定义中的红色卷曲线上,则会显示一个弹出窗口

  

“#define DispatchMessage DispatchMessageW扩展为DispatchMessageW”

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

  1. 在MessageDispatcher.cpp中:

此外,在DispatchMessage()函数中,两个私有成员是不可访问的(Discharge()PriorityQ),这两个私有成员均已正确声明和定义,并且没有引用{{1} }。

  1. 在另外两个调用windows.h的类中,我得到与上述'1'相同的错误。

如果我重新添加MessageDispatcher::DispatchMessage(),所有错误都会消失,并且项目可以毫无问题地构建和运行。

是什么原因导致这些错误,我该如何解决?

1 个答案:

答案 0 :(得分:0)

在定义s=df['_time'].dt.strftime('%Y-%w').groupby(df['key']).nunique() nweek=df['_time'].dt.strftime('%Y-%w').nunique() s[s==nweek] key mike 4 Name: _time, dtype: int64 类之后和使用它之前的某个地方,包含MessageDispatcher或某些其他Windows标头的内容导致<windows.h>宏被定义。