当前位置: 首页 > 面试题库 >

在Java中使用C结构

谭成业
2023-03-14
问题内容

我必须编写一个Java程序,该程序将接收来自网络的消息并将其内容显示给用户。问题是我收到的消息只是C结构的二进制转储。此外,有些消息来自小端机器,有些消息来自大端机器,而没有将字段转换为网络字节顺序。我拥有的一种方法是使用JNI并将c结构转换为一些XML字符串,然后将该XML字符串反序列化为Java
Object。这是一项艰巨的工作,因为大约有122个不同的结构,每个结构都包含20多个字段。我想知道是否有可以使我的工作容易一些的库/工具/方法?


问题答案:

在将C结构映射到Java对象方面,Swig将为您处理许多繁琐的重复工作。查看Swig
/
Java手册

以及有关包装C结构的条目。



 类似资料:
  • 问题内容: 我有一个用Java(> 1.5)编写的项目。 是否可以用C#编写项目的一部分? 例如GUI和调用方法并实例化用Java编写的类? 如果是,怎么办? 问题答案: 有一种称为.NET的Java语言转换助手。您可以将Java类转换为c#并开始编码。 还有一个叫做JNBridge的东西(不是免费的)。

  • 问题内容: 简单地说,我有一个存储应用程序常量的结构,如下所示: 例如,可以通过调用在Swift代码中使用这些常量。但是在我的代码中,它还包含一些Objective- C类。所以我的问题是如何在Objective-C代码中使用这些常量? 如果这种声明常量的方法不好,那么在Swift和Objective-C代码中使用全局常量的最佳方法是什么? 问题答案: 可悲的是,你不能暴露,也不是Objectiv

  • 本文向大家介绍C++ 使用结构,包括了C++ 使用结构的使用技巧和注意事项,需要的朋友参考一下 示例 Astruct可用于捆绑多个返回值: C ++ 11 C ++ 11 代替分配给各个字段,可以使用构造函数来简化返回值的构造: 该函数返回的单个结果foo()可以通过访问的成员变量来检索struct calc: 输出: 17 -7 60 0 注意:当使用时struct,返回的值将组合在一个对象中,

  • 问题内容: 如下所示的非常简单的Java代码具有奇怪的输出,但是C和C ++中的相同逻辑代码具有正确的输出。我尝试使用JDK 1.7和JDK 1.3(相对于JRE),奇怪的输出始终存在。 输出为1,应为8。相对的C / C ++代码如下: 添加测试Java代码: 问题答案: 为了给出一个完整的答案,我将以乐趣(3)的方式进行介绍。对于那些不感兴趣为什么它适用于C ++但不适用于Java的人,请忽略

  • 这个问题是由打字错误或无法再复制的问题引起的。虽然这里可能有类似的问题,但这一问题的解决方式不太可能帮助未来的读者。 我试图使用qsort()对结构中的价格进行排序。排序后,结构中的一个元素(test)变为0。你能告诉我为什么以及如何解决它吗? 谢谢 输出为: 排序前订单id=0价格=4测试=2订单id=1价格=9测试=3订单id=2价格=5测试=0订单id=3价格=2测试=8订单id=4价格=8

  • 问题内容: 在遍历多线程编程的许多资源时,通常会提到volatile说明符。显然,使用此关键字不是在C / C ++和Java(1.4版及更低版本)中至少实现多个线程之间同步的可靠方法。维基百科列出了此说明符的典型用法(未解释如何): 允许访问内存映射的设备 允许在setjmp和longjmp之间使用变量 允许在信号处理程序中使用变量 忙着等待 我可以开始在上面列出的用法中看到该说明符的角色,但是