0

我正在尝试使用 c++ 制作协议栈 DLL。我实际使用协议栈的 Gui 部分是用 Qt 编写的。但是我的协议栈是单独使用标准 c++ 编写的。我想让我的协议栈异步向 GUI 部分发送数据接收信号。为此,我想到了一个信号和槽机制。我不想使用 Qt 信号和插槽,因为我认为它会迫使我将协议栈 DLL 设为 Qt DLL。所以,我想到了使用升压信号。但在 Qt 中,它们将 #defining 信号定义为:

#define signals protected

这会将所有升压信号替换为受保护的,我的程序会引发很多错误。有没有办法单独在Boost库中避免这种#defining?我不希望它在 Qt 库中停止。

4

1 回答 1

0

您可以添加“CONFIG += no_keywords # 这样 Qt 就不会 #define any non-all-caps `keywords'”

或者,您可以取消定义这样的符号:

    #undef signals

并添加您自己的

    #define SIGNALS protected 

如果你想。如果以及当您迁移到 Qt 5 时,请将 protected 更改为 public。

于 2013-04-04T12:43:05.163 回答