在 CORBA 客户端/服务器应用程序中将无符号的长整型(从 C++)断言为长整型 (Java)
Assinging unsigned long (from C++) to long (Java) in CORBA client/server app?
在服务器端,我有返回无符号长值的函数(服务器是用C++编写的),假设:
class Sth {
private:
CORBA::ULong u;
public:
CORBA::ULong get()
{
return this.u;
}
};
如何将(在客户端)从服务器返回的值分配给变量?我的意思是,Java 中没有无符号的长...是否可能将其分配给多头?喜欢这个:
// corba client stuff
long var = server_obj.get();
会好吗?
您必须查看 IDL 映射。 unsigned long
OMG IDL 映射到 C++ 中的 CORBA::ULong
和 Java 中的 int
。有关 CORBA 语言映射的更多信息,请参阅 IDL 到 Java 映射和 IDL 到 C++ 映射。
尝试在java中使用BigInteger类而不是long。没有任何其他方便的方法可以进行转换。
在许多情况下,您知道无符号长整型永远不会超过 2^31,也称为.MAX_LONG。那么在Java中使用long是okey。
在其他一些情况下,实际值几乎没有意义,只要它们是唯一的,例如某种句柄。同样,您可以使用 jlong。
在其他情况下,Java仅用作中间项,如果从C到Java再到C的转换是正确的,则您不在乎过程中是否存在有符号/无符号不匹配。
但是,如果上述异常都不成立,您应该使用BigInteger或重新发明它(坏主意)
相关文章:
- C 字符串返回字符串的整数/双精度/长整型值
- 无法在 Arduino 中uint8_t数组转换为无符号长整型数组
- JNI 日期值转换问题,在C++中获取不同的长整型值
- 将长整型值打印为带有前导零的十六进制
- 为什么在传递长整型时调用具有两个双精度类型的参数的重载函数?
- 提升不良词法强制转换:将字符串转换为无符号长整型时,无法将源类型值解释为目标
- 将最小值整数转换为无符号长整型
- 如何将小端格式的QByteArray转换为无符号长整型
- 无符号长整型和无符号 int 之间有什么区别,这 2 种类型应该如何在 c# 中封送?
- 环礁和(长整型)的区别?
- 将逗号格式化为长整型整数
- 如何将长整型传递给 itoa 函数?
- 是否存在将长整型转换为指针有效的情况
- 在 C++ 中创建一对长整型和矢量时出现编译错误
- 当我使用长整型时,我的代码不起作用,它与 int 一起工作得很好
- 将字符串中以十六进制形式存储的负长整型值转换为 C++ 中的长整型变量
- 为什么当我们把变量"u"的数据类型从长整型更改为整型时,模幂会出错?
- 错误:请求从 std::chrono::time_point 浮点数转换为非标量类型长整型
- 如何以优雅高效的方式将无符号/有符号整数/长整型转换为 C 字符串?
- 在 CORBA 客户端/服务器应用程序中将无符号的长整型(从 C++)断言为长整型 (Java)