我们将 OmniORB 与我们的 C++ 服务器一起使用。目前,当一个对象char
在 IDL 文件中被指定为 a 时,它unsigned char
在 C++ 中被翻译成一个。我们希望它是公正char
的。有什么我们可以改变来实现这一点的吗?
问问题
766 次
2 回答
3
它是实现定义的(规范中的第 15 页)IDL 类型boolean
和映射到的char
内容。octet
...
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 回答