【发布时间】:2016-02-12 02:02:43
【问题描述】:
当我在谷歌搜索“poco web server example”时,它提供给我的第一个链接是this one。现在诚然,它的星级评分为零,谷歌提供了一个来自 Poco 的更官方的例子,它的排名靠后。尽管如此,该示例非常简单,因此我尝试将其添加到现有 (MFC) 项目中并进行编译。当我这样做时,我会收到以下错误:
[...]serverapplication.h(215): error C3646: '_serviceStatus': unknown override specifier
[...]serverapplication.h(215): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
[...]serverapplication.h(216): error C3646: '_serviceStatusHandle': unknown override specifier
[...]serverapplication.h(216): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
错误出现在serverapplication.h的这两行:
static SERVICE_STATUS _serviceStatus;
static SERVICE_STATUS_HANDLE _serviceStatusHandle;
当然,即使我所做的只是包含 Poco 头文件而没有其他任何内容,错误仍然存在......所以这并不是 我的代码 有问题,而不仅仅是 我的环境有问题。事实上,如果我将 8 个 Poco 头文件 + 3 个 STL 头的列表替换为 Poco 自己的 HTTPTimeServer 示例中较长的列表(顺便说一下,它作为一个独立项目编译和运行良好),我会得到完全相同的错误。
看起来SERVICE_STATUS 和SERVICE_STATUS_HANDLE 被#定义为什么都没有。是否有编译器设置或预处理器定义可以做到这一点? Poco 用户应该注意的陷阱是什么? Poco 和 MFC 之间是否存在兼容性问题?
更新:我可以通过下载 this potentially relevant article 引用的 this zipped project 来独立于我的应用程序重现该问题...构建良好...但是当我尝试指定额外包含时文件夹并包含serverapplication.h,就会发生这些错误。 Poco ServerApplication 类文档页面上没有提及任何依赖项。
【问题讨论】:
标签: mfc poco-libraries