CORBA IDL到C ++ - char与unsigned char?

时间:2014-02-13 18:14:36

标签: c++ corba omniorb

我们在我们的C ++服务器上使用OmniORB。目前,当在IDL文件中将对象指定为char时,它将被转换为C ++中的unsigned char。我们希望它只是char。我们可以改变什么来实现这一目标吗?

2 个答案:

答案 0 :(得分:3)

实施定义(page 15 in the spec)IDL类型booleancharoctet映射到的内容。

omniORB chooses to

...
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应该完成这项工作。