我正在尝试使用c++创建一个协议栈动态链接库。我的Gui部分实际上使用了协议栈,是用Qt编写的。但是我的协议栈是单独使用标准c++编写的。我想让我的协议栈向GUI部分发出异步接收数据的信号。为此,我想到了一个信号和槽机制。我不想使用Qt信号和插槽,因为我认为,这会迫使我将我的协议栈DLL设置为Qt DLL。因此,我想到了使用boost信号。但在Qt中,它们是#定义信号为:
#define signals protected这将所有的boost信号替换为protected,并且我的程序抛出了很多错误。有没有办法避免仅在Boost库中定义这种#?我不希望它在Qt库中被停止。
发布于 2013-04-04 20:43:05
您可以添加"CONFIG += no_keywords # so Qt won't #define any non-all-caps `keywords'"
或者,您可以取消定义符号,如下所示:
#undef signals并添加您自己的
#define SIGNALS protected 如果你愿意的话。但是,如果您迁移到Qt 5,则将protected更改为public。
https://stackoverflow.com/questions/15810839
复制相似问题