3

我们将 OmniORB 与我们的 C++ 服务器一起使用。目前,当一个对象char在 IDL 文件中被指定为 a 时,它unsigned char在 C++ 中被翻译成一个。我们希望它是公正char的。有什么我们可以改变来实现这一点的吗?

4

2 回答 2

3

它是实现定义的(规范中的第 15 页)IDL 类型boolean和映射到的char内容。octet

omn​​iORB 选择

...
typedef unsigned char _CORBA_Char;
typedef unsigned char _CORBA_Octet; 
...

您可以更改omniORB 来源,但我怀疑这不是个好主意。或者你可以接受CORBA::Char不代表 C++char类型的。

于 2014-06-24T21:07:28.133 回答
1

我建议CORBA::Char在调用直接 CORBA 调用的函数并分配此类函数的返回值时使用。

如果您需要将它们转换为“char”或“unsigned char”,astatic_cast应该可以完成这项工作。

于 2014-06-24T21:14:39.320 回答