我们在我们的C ++服务器上使用OmniORB。目前,当在IDL文件中将对象指定为char
时,它将被转换为C ++中的unsigned char
。我们希望它只是char
。我们可以改变什么来实现这一目标吗?
答案 0 :(得分:3)
实施定义(page 15 in the spec)IDL类型boolean
,char
和octet
映射到的内容。
...
typedef unsigned char _CORBA_Char;
typedef unsigned char _CORBA_Octet;
...
您可以更改omniORB来源,但我怀疑这是个好主意。或者您可以接受CORBA::Char
不代表C ++ char
类型。
答案 1 :(得分:1)
我建议在调用直接CORBA调用函数并分配此类函数的返回值时使用CORBA::Char
。
如果您需要将它们转换为' char'或者' unsigned char',static_cast
应该完成这项工作。