CORBA IDL to C++ - char vs. unsigned char?



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

它是 IDL 类型boolean定义(规范中的第 15 页)的实现,charoctet映射到什么。

omniORB选择:

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

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

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

如果您需要将它们转换为"char"或"无符号字符",static_cast应该可以完成这项工作。

相关内容

  • 没有找到相关文章

最新更新