首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Qt中使用boost会抛出有关信号被定义为受保护的错误

在Qt中使用boost会抛出有关信号被定义为受保护的错误
EN

Stack Overflow用户
提问于 2013-04-04 20:15:08
回答 1查看 216关注 0票数 0

我正在尝试使用c++创建一个协议栈动态链接库。我的Gui部分实际上使用了协议栈,是用Qt编写的。但是我的协议栈是单独使用标准c++编写的。我想让我的协议栈向GUI部分发出异步接收数据的信号。为此,我想到了一个信号和槽机制。我不想使用Qt信号和插槽,因为我认为,这会迫使我将我的协议栈DLL设置为Qt DLL。因此,我想到了使用boost信号。但在Qt中,它们是#定义信号为:

代码语言:javascript
复制
#define signals protected

这将所有的boost信号替换为protected,并且我的程序抛出了很多错误。有没有办法避免仅在Boost库中定义这种#?我不希望它在Qt库中被停止。

EN

回答 1

Stack Overflow用户

发布于 2013-04-04 20:43:05

您可以添加"CONFIG += no_keywords # so Qt won't #define any non-all-caps `keywords'"

或者,您可以取消定义符号,如下所示:

代码语言:javascript
复制
    #undef signals

并添加您自己的

代码语言:javascript
复制
    #define SIGNALS protected 

如果你愿意的话。但是,如果您迁移到Qt 5,则将protected更改为public。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15810839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档